Serverless Kubernetes容器服务支持pod挂载弹性公网EIP

简介: 近日,阿里云Serverless Kubernetes服务推出pod挂载弹性公网IP功能,此功能使某些serverless容器应用的部署和服务访问变得更加简单和便利。

近日,阿里云Serverless Kubernetes服务基于ECI推出pod挂载弹性公网EIP功能,此功能使某些serverless容器应用的部署和服务访问变得更加简单和便利。

  • 无需创建VPC NAT网关即可让单个pod访问公网
  • 无需创建service也可让单个pod暴露公网服务

目前Serverless Kubernetes支持两种方法挂载EIP,支持自动分配EIP,或者指定EIP实例进行绑定。

方法一:自动分配弹性公网EIP

通过指定Annonation "k8s.aliyun.com/eci-with-eip"为"true",serverless kubernetes服务会自动为此pod分配一个eip,并且绑定到pod上。

示例:

#cat nginx-enable-eip-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  annotations:
    "k8s.aliyun.com/eci-with-eip": "true"
spec:
  containers:
  - image: registry-vpc.cn-hangzhou.aliyuncs.com/jovi/nginx:alpine
    imagePullPolicy: Always
    name: nginx
    ports:
    - containerPort: 80
      name: http
      protocol: TCP
  restartPolicy: OnFailure

创建pod:

#kubectl apply -f nginx-enable-eip-pod.yaml
pod "nginx" created

#kubectl get pod
nginx     1/1       Running   0         20s

查看pod的ip地址:

# kubectl describe pod
Name:         nginx
Namespace:    default
Node:         viking-c7d16b6c584544f65bfa4eba3a8b04d63/
Start Time:   Mon, 07 Jan 2019 13:19:47 +0800
Labels:       <none>
Annotations:  k8s.aliyun.com/allocated-eipAddress=47.96.67.132
              k8s.aliyun.com/allocated-eipInstanceId=eip-bp1wtbt7vp18tgu5g7rb2
              k8s.aliyun.com/eci-with-eip=true
              kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{"k8s.aliyun.com/enable-eip":"true"},"name":"nginx","namespace":"default"},"spec":{"container...
              kubernetes.io/limit-ranger=LimitRanger plugin set: cpu, memory request for container nginx
Status:       Running
IP:           10.1.89.103
Containers:
  nginx:
    Container ID:   eci://779380281b08b325b4b7a1b66c4cb9e706985b25cde0c36345af93a308745b95
    Image:          registry-vpc.cn-hangzhou.aliyuncs.com/jovi/nginx:alpine
    Image ID:
    Port:           80/TCP
    State:          Running
      Started:      Mon, 07 Jan 2019 13:19:47 +0800
    Ready:          True
    Restart Count:  0
    Requests:
      cpu:        1
      memory:     2Gi
    Environment:  <none>
    ...
    
# kubectl describe pod|grep allocated-eipAddress
Annotations:  k8s.aliyun.com/allocated-eipAddress=47.96.67.132

我们可以看到在pod的Annotations中显示了已分配的eip,通过此eip可直接访问pod。

# curl 47.96.67.132
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...

因为此方式中eip为动态分配,其生命周期与pod相同,当pod被删除时,动态分配的eip也会被一同删除。

我们也可以通过Annotation “k8s.aliyun.com/eip-bandwidth”指定eip的带宽,默认值为5,单位为M。

请注意,如果您创建的是deployment,那么deployment中的每一个pod都将会被挂载不同的eip,请谨慎使用此操作。

方法二:指定弹性公网IP实例id

首先用户需要在eip控制台购买弹性公网eip。
image

通过指定pod的Annonation "k8s.aliyun.com/eci-eip-instanceid"为eip实例id,如下:

# cat nginx-eipid-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  annotations:
    "k8s.aliyun.com/eci-eip-instanceid": "eip-bp19trewkig3i9pnek99i"
spec:
  containers:
  - image: registry-vpc.cn-hangzhou.aliyuncs.com/jovi/nginx:alpine
    imagePullPolicy: Always
    name: nginx
    ports:
    - containerPort: 80
      name: http
      protocol: TCP
  restartPolicy: OnFailure

创建pod

# kubectl apply -f  nginx-eipid-pod.yaml
pod "nginx" created

# kubectl get pod
NAME      READY     STATUS    RESTARTS   AGE
nginx     1/1       Running   0         20s

通过eip访问pod:

# curl 47.111.20.92
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
...

此种方式种当pod被删除时,pod和eip解除绑定。pod重新创建时eip则会重新被绑定。

快速试用Serverless Kubernetes

欢迎登录容器服务控制台,公测期间免费使用,https://cs.console.aliyun.com/#/k8s

如在使用中有任何问题,欢迎扫码加入Serverless K8s钉钉群进行讨论
image

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
4月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
509 2
|
6月前
|
运维 Kubernetes 持续交付
ACK One GitOps:让全球化游戏服务持续交付更简单
ACK One GitOps 致力于提供开箱即用的多集群 GitOps 持续交付能力,简化游戏等服务的多集群/多地域统一部署,让您更加专注于业务开发。
|
存储 Serverless 数据库
科普文:云计算服务类型IaaS, PaaS, SaaS, BaaS, Faas说明
本文介绍了云计算服务的几种主要类型,包括IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)、BaaS(后端即服务)和FaaS(函数即服务)。每种服务模式提供了不同的服务层次和功能,从基础设施的提供到应用的开发和运行,再到软件的交付使用,满足了企业和个人用户在不同场景下的需求。文章详细阐述了每种服务模式的特点、优势和缺点,并列举了相应的示例。云计算服务的发展始于21世纪初,随着互联网技术的普及,这些服务模式不断演进,为企业和个人带来了高效、灵活的解决方案。然而,使用这些服务时也需要注意服务的稳定性、数据安全性和成本等问题。
12020 5
|
9月前
|
Serverless Python
借助 serverless 将 MCP 服务部署到云端
本文介绍了如何将 MCP 服务通过 SSE 协议部署到云端,避免本地下载和启动的麻烦。首先,使用 Python 实现了一个基于 FastMCP 的网络搜索工具,并通过设置 `transport='sse'` 启用 SSE 协议。接着,编写客户端代码测试服务功能,确保其正常运行。随后,利用阿里云函数计算服务(FC 3.0)以 Serverless 方式部署该服务,包括创建函数、配置环境变量、添加依赖层以及部署代码。最后,提供了客户端测试方法和日志排查技巧,并展示了如何在不同工具(如 Cherry-Studio、Cline 和 Cursor)中配置云端 MCP 服务。
1486 10
借助 serverless 将 MCP 服务部署到云端
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
11月前
|
Cloud Native 安全 Serverless
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
|
11月前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
11月前
|
弹性计算 人工智能 资源调度
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
|
10月前
|
存储 运维 Kubernetes
容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复
阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践