在CCE Turbo集群中为Pod配置固定EIP
使用场景
在云原生网络2.0下,支持为StatefulSet工作负载或直接创建的Pod分配固定的公网IP(EIP)。
约束限制
- 仅以下指定版本的CCE Turbo集群支持用户配置Pod固定EIP:
- v1.19集群:v1.19.16-r20及以上版本
- v1.21集群:v1.21.10-r0及以上版本
- v1.23集群:v1.23.8-r0及以上版本
- v1.25集群:v1.25.3-r0及以上版本
- v1.25以上版本集群
- 开启固定EIP功能需要和Pod自动创建EIP功能配合使用,详情请参见在CCE Turbo集群中为Pod配置EIP。
- 目前只支持StatefulSet类型的Pod或直接创建的Pod固定EIP,暂不支持Deployment、DaemonSet等其他类型的工作负载配置Pod固定EIP。
- 固定EIP创建后,生命周期内(如过期时间未到/Pod还在使用中)不支持通过Pod修改EIP属性。
- 对Pod的EIP地址无明确要求的业务不建议配置固定EIP,因为配置了固定EIP的Pod,Pod重建的耗时会略微变长。
为Pod配置固定EIP
创建固定EIP的Pod时,填写EIP相关的annotation后,EIP会随Pod自动创建并绑定至该Pod。
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: nginx
spec:
serviceName: nginx
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
annotations:
yangtse.io/static-eip: 'true' # Pod固定EIP
yangtse.io/static-eip-expire-no-cascading: 'false' # EIP级联删除
yangtse.io/static-eip-expire-duration: 5m # 固定EIP过期回收的时间间隔
yangtse.io/pod-with-eip: 'true' # EIP跟随Pod创建
yangtse.io/eip-bandwidth-size: '5' # EIP带宽
yangtse.io/eip-network-type: 5_bgp # EIP类型
yangtse.io/eip-charge-mode: bandwidth # EIP计费模式
spec:
containers:
- name: container-0
image: nginx:alpine
resources:
limits:
cpu: 100m
memory: 200Mi
requests:
cpu: 100m
memory: 200Mi
imagePullSecrets:
- name: default-secret annotation | 是否可选 | 默认值 | 参数说明 | 取值范围 |
|---|---|---|---|---|
yangtse.io/static-eip | 必选 | false | 是否开启Pod固定EIP,只有StatefulSet类型的Pod或无ownerReferences的Pod支持,默认不开启。 | "false"或"true" |
yangtse.io/static-eip-expire-duration | 可选 | 5m | 删除固定EIP的Pod后,对应的固定EIP过期回收的时间间隔。 | 支持时间格式为Go time type,例如1h30m、5m。关于Go time type,请参见Go time type。 |
yangtse.io/static-eip-expire-no-cascading | 可选 | false | 是否关闭StatefulSet工作负载的级联回收。 默认为false,表示StatefulSet删除后,会级联删除对应的固定EIP。如果您需要在删除StatefulSet对象后,在EIP过期回收时间内保留对应的固定EIP,用于下一次重建同名的StatefulSet再次使用对应的固定EIP,请将该参数设为true。 | "false"或"true" |
annotation | 是否可选 | 默认值 | 参数说明 | 取值范围 |
|---|---|---|---|---|
yangtse.io/pod-with-eip | 必选 | false | 是否需要跟随Pod创建EIP并绑定到该Pod。 | "false"或"true" |
yangtse.io/eip-bandwidth-size | 可选 | 5 | 带宽大小,单位为Mbit/s。 | 具体范围以各区域配置为准,根据带宽的计费类型不同可能存在差异,详情请参见弹性公网IP控制台的购买页面。 例如,“华东-上海一”区域按带宽计费类型的带宽大小范围为1Mbit/s~2000Mbit/s、按流量计费类型的带宽大小范围为1Mbit/s~300Mbit/s。 |
yangtse.io/eip-network-type | 可选 | 5_bgp | 公网IP类型。 | 具体类型以各区域配置为准,详情请参见弹性公网IP控制台的购买页面。 例如,“华东-上海一”区域支持以下类型:
|
yangtse.io/eip-charge-mode | 可选 | 空 | 带宽付费模式。 建议填写该参数。若该参数为空,表示不指定计费模式,则以该区域下弹性公网IP接口的默认值为准。 |
|
yangtse.io/eip-bandwidth-name | 可选 | Pod名称 | 带宽名称。 |
|
yangtse.io/eip-enterprise-project-id | 可选 | '0' | 创建EIP的企业项目ID。您可以在EPS服务控制台的“项目管理”页面查看企业项目ID。 v1.28.15-r80、v1.29.15-r40、v1.30.14-r40、v1.31.14-r0、v1.32.9-r0、v1.33.7-r0、v1.34.2-r0及以上版本的集群支持该功能。 | 不填写默认为'0',代表使用default企业项目。 其它情况需要填写真实的企业项目ID。 |
yangtse.io/eip-user-tags | 可选 | 空 | EIP上的资源标签属性。 v1.28.15-r80、v1.29.15-r40、v1.30.14-r40、v1.31.14-r0、v1.32.9-r0、v1.33.7-r0、v1.34.2-r0及以上版本的集群支持该功能。 | 以JSON格式写入,示例如下: '[{"key":"Project","value":"Migration-2024"},{"key":"Owner","value":"DevOps-Team"},{"key":"IsTemporary","value":"True"}]' 支持最多17个自定义标签,key/value值输入范围请以EIP服务的限制为准。 |
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: nginx
spec:
serviceName: nginx
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
annotations:
yangtse.io/static-eip: 'true' # Pod固定EIP
yangtse.io/pod-with-eip: 'true' # EIP跟随Pod创建
yangtse.io/eip-network-type: 5_bgp # EIP类型
yangtse.io/eip-bandwidth-id: <eip_bandwidth_id> # EIP共享带宽ID
spec:
containers:
- name: container-0
image: nginx:alpine
resources:
limits:
cpu: 100m
memory: 200Mi
requests:
cpu: 100m
memory: 200Mi
imagePullSecrets:
- name: default-secret annotation | 是否可选 | 默认值 | 参数说明 | 取值范围 |
|---|---|---|---|---|
yangtse.io/static-eip | 必选 | false | 是否开启Pod固定EIP,只有StatefulSet类型的Pod或无ownerReferences的Pod支持,默认不开启。 | "false"或"true" |
yangtse.io/static-eip-expire-duration | 可选 | 5m | 删除固定EIP的Pod后,对应的固定EIP过期回收的时间间隔。 | 支持时间格式为Go time type,例如1h30m、5m。关于Go time type,请参见Go time type。 |
yangtse.io/static-eip-expire-no-cascading | 可选 | false | 是否关闭StatefulSet工作负载的级联回收。 默认为false,表示StatefulSet删除后,会级联删除对应的固定EIP。如果您需要在删除StatefulSet对象后,在EIP过期回收时间内保留对应的固定EIP,用于下一次重建同名的StatefulSet再次使用对应的固定EIP,请将该参数设为true。 | "false"或"true" |
annotation | 是否可选 | 默认值 | 参数说明 | 取值范围 |
|---|---|---|---|---|
yangtse.io/pod-with-eip | 必选 | false | 是否需要跟随Pod创建EIP并绑定到该Pod。 | "false"或"true" |
yangtse.io/eip-network-type | 可选 | 5_bgp | 公网IP类型。 |
具体类型以各区域配置为准,详情请参见弹性公网IP控制台。 |
yangtse.io/eip-bandwidth-id | 使用共享型带宽时必选 | 空 | 已有的带宽ID。
| - |
yangtse.io/eip-enterprise-project-id | 可选 | '0' | 创建EIP的企业项目ID。您可以在EPS服务控制台的“项目管理”页面查看企业项目ID。 v1.28.15-r80、v1.29.15-r40、v1.30.14-r40、v1.31.14-r0、v1.32.9-r0、v1.33.7-r0、v1.34.2-r0及以上版本的集群支持该功能。 | 不填写默认为'0',代表使用default企业项目。 其它情况需要填写真实的企业项目ID。 |
yangtse.io/eip-user-tags | 可选 | 空 | EIP上的资源标签属性。 v1.28.15-r80、v1.29.15-r40、v1.30.14-r40、v1.31.14-r0、v1.32.9-r0、v1.33.7-r0、v1.34.2-r0及以上版本的集群支持该功能。 | 以JSON格式写入,示例如下: '[{"key":"Project","value":"Migration-2024"},{"key":"Owner","value":"DevOps-Team"},{"key":"IsTemporary","value":"True"}]' 支持最多17个自定义标签,key/value值输入范围请以EIP服务的限制为准。 |
删除固定EIP
删除Pod后,在配置的固定EIP过期时间内,如果有同名的Pod创建,EIP依旧可用。只有在EIP过期时间内没有同名Pod创建或者删除StatefulSet时开启级联删除EIP时,固定EIP才会删除。

