You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
容器网络
为 Pod 绑定独立 EIP
复制全文
下载 pdf
为 Pod 绑定独立 EIP
容器服务支持为 Pod 提供独立的公网出/入口,能够满足单个或少量 Pod 公网互通的场景,而且有效解决 Pod 间公网带宽争抢的问题。本文为您介绍如何为 Pod 绑定公网 IP。​
说明​
【邀测·申请试用】:该功能目前处于邀测阶段,如需使用,请提交申请。​
前提条件​
  • 已通过 kubectl 连接目标集群。详情请参见 连接集群。​
  • 如需为 Pod 绑定已有 EIP,请先完成 EIP 实例申请。详情请参见 申请公网 IP。​
使用限制​
  • 仅支持在 VPC-CNI 容器网络模型的集群中使用。​
  • EIP 特性开启后不支持关闭。vpc-cni-controlplane 组件安装后,暂不允许卸载。​
  • Pod Name 必须小于等于 63 字符。​
  • 配置过程中由于涉及资源申请和购买,请确认账号需要满足以下条件:​
  • 确保账户余额不低于 100 元(含代金券,且除去代金券后余额不为零),能够正常创建 EIP 资源。​
  • 单个账号、单个地域下,默认最多可申请的 EIP 数量为 20 个。若默认配额无法满足需求,请前往 配额中心 ,申请提升配额。​
  • 单个账号、单个地域下,每天最多可以创建请求的数量为可申请 EIP 数量的 2 倍。​
  • 单个账号、单个地域下,每天最多可以绑定请求的数量为可申请 EIP 数量的 3 倍。​
操作步骤​
步骤一:安装组件​
  1. 在左侧导航栏中选择 集群,单击目标集群名称,进入集群管理页面。​
  1. 在左侧导航栏中,选择 组件管理。​
  1. 选择 网络 页签,将鼠标移动到 vpc-cni-controlplane 组件卡片上,单击 部署。​
  1. 在弹出的配置框内开启 Pod 绑定公网 IP 功能。​
  • ​​​
说明​
若存量集群已经安装 vpc-cni-controlplane 组件,请确保组件已经升级到 v1.3.0 及以上版本。详情请参见 升级组件。​
  1. 单击 确定,完成组件安装。​
步骤二:为 Pod 绑定独立 EIP​
容器服务通过实例注解(Annotation)方式为 Pod 配置 EIP。支持绑定已有 EIP,也支持创建新的 EIP 并绑定到 Pod 网卡。​
注意​
  • 绑定已有 EIP 时,请确保待绑定的 EIP 可用,若 EIP 已经被其他资源绑定,则无法继续绑定到 Pod。​
  • 若通过配置工作负载的方式为 Pod 绑定 EIP,仅对 Deployment、StatefulSet、Job、CronJob 生效,不对 DaemonSet 生效。​
  • 若通过配置工作负载的方式为 Pod 绑定已有 EIP,当副本数超过 1 时,只有其中一个 Pod 会被绑定 EIP。​
  • 为 Pod 绑定独立 EIP 时,不区分 Pod 是否调度到普通节点还是 VCI 节点上。​
方式一:绑定已有 EIP​
​
配置工作负载时为 Pod 绑定已有 EIP
配置 Pod 时绑定已有 EIP
​
以无状态负载为例,您可以在配置时添加 Annotation,为 Pod 绑定独立 EIP。示例和说明如下:​
​
apiVersion: apps/v1​
kind: Deployment​
metadata:​
name: deployment-eip-demo # 工作负载的名称​
namespace: default # 工作负载所在的命名空间​
spec:​
replicas: 1 ​
selector:​
matchLabels:​
app: nginx​
template:​
metadata:​
annotations:​
vke.volcengine.com/primary-eip-id: "eip-rr67***" # Pod 绑定的已有 EIP 实例 ID​
labels:​
app: nginx​
spec:​
containers:​
- name: nginx ​
image: doc-cn-beijing.cr.volces.com/vke/nginx-demo:v1.0​
ports:​
- containerPort: 80 ​
​
​
​
Annotation 说明如下表所示。​
​
字段​
类型​
是否必选​
说明​
vke.volcengine.com/primary-eip-id​
String​
是​
Pod 绑定的已有 EIP 实例 ID。​
​
方式二:新建 EIP 并绑定​
注意​
  • 删除 Pod 时,与其绑定的 EIP 会自动同步删除,再次创建并绑定的 EIP 的公网地址可能不同,请谨慎操作。​
  • 请勿自行更改 VKE 创建的 EIP 实例,例如:转换 EIP 实例的计费项。否则可能导致 VKE 无法同步删除 EIP 资源,导致资源残留。详情请参见 清理 VKE 创建的 EIP 实例。​
​
配置工作负载时创建 EIP 并与 Pod 绑定
配置 Pod 时创建 EIP 并与 Pod 绑定
​
以无状态负载为例,您可以在配置时添加 Annotation,创建新的 EIP 并与 Pod 绑定。示例和说明如下:​
​
apiVersion: apps/v1​
kind: Deployment​
metadata:​
name: deployment-eip-demo # 工作负载的名称​
namespace: default # 工作负载所在的命名空间​
spec:​
replicas: 1 ​
selector:​
matchLabels:​
app: nginx​
template:​
metadata:​
annotations: ​
vke.volcengine.com/primary-eip-allocate: '{"type": "Elastic"}' # EIP 申请策略,固定值​
vke.volcengine.com/primary-eip-attributes: '{​
"name": "eip-demo",​
"description": "demo for pods eip",​
"isp": "BGP",​
"billingType": 2,​
"bandwidth": 100,​
"projectName": "default",​
"bandwidthPackageId": "bwp-2d63yyj3ki4u858oz***",​
"tags": { ​
"billing-team": "doc",​
"env": "prod"​
}​
}'​
# billingType 为 EIP 计费方式,取值:2(默认值,按量计费-按带宽上限计费);3(按量计费-按实际流量计费)​
labels:​
app: nginx​
spec:​
containers:​
- name: nginx ​
image: doc-cn-beijing.cr.volces.com/vke/nginx-demo:v1.0​
ports:​
- containerPort: 80 ​
​
​
​
Annotation 说明如下表所示。​
​
字段​
类型​
是否必选​
说明​
vke.volcengine.com/primary-eip-allocate​
String​
否​
EIP 申请策略,固定为'{"type": "Elastic"}'。​
vke.volcengine.com/primary-eip-attributes​
String​
是​
创建并绑定 EIP。​
​
primary-eip-attributes中的参数说明如下表所示。​
​
字段​
类型​
是否必选​
说明​
name​
String​
否​
EIP 名称,未指定时由系统自动生成。​
description​
String​
否​
EIP 描述信息。​
isp​
String​
否​
EIP 线路类型。取值:​
  • BGP:(默认值)BGP(多线)。​
  • ChinaMobile:中国移动静态单线。​
  • ChinaTelecom:中国电信静态单线。​
  • ChinaUnicom:中国联通静态单线。​
  • SingleLine_BGP:BGP 单线。​
  • Static_BGP:静态 BGP。​
注意​
除 BGP(多线) 外,其他线路类型均为 EIP 产品的邀测功能,如需使用,请联系客户经理申请。​
billingType​
Integer​
否​
EIP 计费方式,取值:​
  • 2:(默认值)按量计费-按带宽上限计费。​
  • 3:按量计费-按实际流量计费。​
bandwidth​
Integer​
否​
EIP 带宽上限,单位为 Mbps。​
  • 当billingType为2时,取值范围为 1~500。​
  • 当billingType为3时,取值范围为 1~200。​
projectName​
String​
否​
EIP 所属项目名称,默认为 default。​
bandwidthPackageId​
String​
否​
共享带宽包 ID。​
说明​
共享带宽包是一种支持复用和共享带宽的云资源。将单个地域内多个公网 IP 或 IPv6 公网带宽添加到一个共享带宽包实例中,共享一条带宽,可以帮助您降低公网带宽的使用成本。详情请参见 什么是共享带宽包。​
tags​
Object​
否​
EIP 标签,键值对形式。​
  • 标签键(Key)和标签值(Value)均为字符串类型。​
  • 支持中文、英文大小写,数字、空格、下划线_、点号.、半角冒号:、斜杠/、等号=、加号+、中划线-和@符号。​
  • 标签键不能以 volc:或sys:开头,包括任意大小写形式。​
  • 标签值大小写敏感。​
说明​
如需使用该配置,需要将 vpc-cni-controlplane 组件升级至 v1.6.3 及以上版本。详情请参见 vpc-cni-controlplane。​
​
方式三:使用 IP 地址池为 Pod 分配 EIP​
说明​
如需使用 IP 地址池为 Pod 分配 EIP,需要满足以下条件:​
  • IP 地址池功能为 VPC 产品的邀测功能,如需使用,请联系您的客户经理。​
  • 请确认已创建 IP 地址池,并获取 IP 地址池的 ID。详情请参见 创建 IP 地址池。​
  • 需升级 vpc-cni-controlplane 组件至 v1.5.2 及以上版本。​
您可以在配置 Pod 时添加 Annotation,使用地址池为 Pod 分配独立 EIP。示例和说明如下:​
​
apiVersion: v1​
kind: Pod​
metadata:​
name: pod-eip-demo # Pod 名称​
namespace: default # Pod 所在命名空间​
annotations: ​
vke.volcengine.com/primary-eip-allocate: '{"type": "Elastic"}' # EIP 申请策略,固定值​
vke.volcengine.com/primary-eip-attributes: '{​
"name": "eip-demo",​
"description": "demo for pods eip",​
"isp": "BGP",​
"billingType": 2,​
"projectName": "default",​
"bandwidthPackageId": "bwp-2d63yyj3ki4u858oz***",​
"ipAddressPoolId": "ippool-w0kr0l3rrxmo***",​
"tags": { ​
"billing-team": "doc",​
"env": "prod"​
}​
}'​
# billingType 为 EIP 计费方式,取值:2(默认值,按量计费-按带宽上限计费);3(按量计费-按实际流量计费)​
spec:​
containers:​
- name: hello-pod ​
image: doc-cn-beijing.cr.volces.com/vke/nginx-demo:v1.0​
ports:​
- containerPort: 80​
​
Annotation 说明如下表所示。​
​
字段​
类型​
是否必选​
说明​
vke.volcengine.com/primary-eip-allocate​
String​
否​
EIP 申请策略,固定为'{"type": "Elastic"}'。​
vke.volcengine.com/primary-eip-attributes​
String​
是​
创建并绑定 EIP。​
​
primary-eip-attributes中的参数说明如下表所示。​
​
字段​
类型​
是否必选​
说明​
name​
String​
否​
EIP 名称,未指定时由系统自动生成。​
description​
String​
否​
EIP 描述信息。​
isp​
String​
否​
EIP 线路类型,默认为 BGP。需要与 IP 地址池的配置保持一致。​
billingType​
Integer​
否​
EIP 计费方式,需要与 IP 地址池的配置保持一致。取值:​
  • 2:(默认值)按量计费-按带宽上限计费。​
  • 3:按量计费-按实际流量计费。​
bandwidth​
Integer​
否​
EIP 带宽上限,单位为 Mbps。​
  • 当billingType为2时,取值范围为 1~500。​
  • 当billingType为3时,取值范围为 1~200。​
projectName​
String​
否​
EIP 所属项目名称,默认为 default。​
bandwidthPackageId​
String​
否​
共享带宽包 ID。​
说明​
共享带宽包是一种支持复用和共享带宽的云资源。将单个地域内多个公网 IP 或 IPv6 公网带宽添加到一个共享带宽包实例中,共享一条带宽,可以帮助您降低公网带宽的使用成本。详情请参见 什么是共享带宽包。​
ipAddressPoolId​
String​
是​
IP 地址池 ID。​
tags​
Object​
否​
EIP 标签,键值对形式。​
  • 标签键(Key)和标签值(Value)均为字符串类型。​
  • 支持中文、英文大小写,数字、空格、下划线_、点号.、半角冒号:、斜杠/、等号=、加号+、中划线-和@符号。​
  • 标签键不能以 volc:或sys:开头,包括任意大小写形式。​
  • 标签值大小写敏感。​
说明​
如需使用该配置,需要将 vpc-cni-controlplane 组件升级至 v1.6.3 及以上版本。详情请参见 vpc-cni-controlplane。​
​
步骤三:(可选)控制 Pod Ready 状态​
由于 Pod 创建和 EIP 绑定是一个异步的过程,控制器会在 Pod IP 分配后,为 Pod 配置 EIP 地址。因此,Pod 的 Ready 状态可能早于 EIP 绑定成功时间。您可以在 Pod 配置 init container,监控 Pod 的 Ready 状态,检查 EIP 是否已经绑定成功,配置参考如下:​
说明​
本例中的 busybox 为 init container 示例镜像,能够执行 command 命令的镜像均可,建议用小镜像。​
​
apiVersion: v1​
kind: Pod​
metadata:​
name: pod-eip-demo​
annotations:​
vke.volcengine.com/primary-eip-id: "eip-rr67***"​
...​
spec:​
initContainers:​
- command:​
- timeout​
- "60"​
- sh​
- -c​
- until grep -i 'EipAddress' /etc/eipinfo/allocated-eips; do echo waiting for​
allocated-eips; sleep 1; done ​
image: busybox:latest​
imagePullPolicy: Always​
name: init​
volumeMounts:​
- mountPath: /etc/eipinfo​
name: eipinfo​
volumes: ​
- name: eipinfo ​
downwardAPI: ​
items: ​
- path: "allocated-eips" ​
fieldRef: ​
fieldPath: metadata.annotations['vke.volcengine.com/allocated-eips']​
...​
​
结果验证​
检查 Pod 状态​
Pod 为Running状态后,您可以检查 Pod 和与 EIP 的绑定状态。绑定完成后,系统将为 Pod 打上vke.volcengine.com/allocated-eips等 annotation,可以以此来验证 Pod 的 Ready 状态。如下图所示。​
​​​
vke.volcengine.com/allocated-eips字段中的参数说明如下所示。​
​
参数​
类型​
示例​
说明​
EipId​
String​
eip-2yynbg1qt***​
EIP 实例 ID。​
EipAddress​
String​
14.x.x.x​
EIP 实例公网地址。​
EniId​
String​
eni-2yz4c3ppm***​
Pod 实例的弹性网卡 ID。​
EniIp​
String​
192.168.1.10​
Pod 实例的弹性网卡的私网 IPv4 地址。​
​
查看 EIP 信息​
登录 公网 IP 控制台,在 公网访问 > 公网 IP 列表中,可以查看到与 Pod 绑定的 EIP 实例。​
​alt​​
通过 EIP 访问 Pod​
通过公网访问 Pod 中部署的应用(例如:Nginx),若可以正常访问,则表示 Pod 配置的独立 EIP 可以正常工作。​
参考信息​
清理 VKE 创建的 EIP 实例​
如果您自行更改了 VKE 创建的 EIP 实例规格,则 Pod 被删除时,VKE 不会自动同步删除 EIP 实例,从而导致 EIP 资源残留。此时,您可以使用 EIP 中的特定标签,在 EIP 控制台中查找并手工清理 VKE 创建的 EIP 实例。标签说明如下表所示:​
​
标签键​
标签值​
volc:vke:cluster-id-<cluster-id>​
cluster-id​
volc:vke:createdby-vke-flag​
true​
volc:vke:enieip-name​
<enieip-name>​
volc:vke:enieip-namespace​
<enieip-namespace>​
​
说明​
enieip 为 VKE 集群中的 CRD 资源,您可以在 VKE 集群 工作负载 > 对象浏览器 中查看该资源的信息。详情请参见 对象浏览器。​
VKE 创建的 EIP 实例信息示例,如下所示:​
​alt​​
​
最近更新时间:2026.08.19 11:19:36
这个页面对您有帮助吗?
有用
有用
无用
无用