在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重建的耗时会略微变长。
配置固定EIP
创建固定EIP的Pod时,填写EIP相关的annotation后,EIP会随Pod自动创建并绑定至该Pod。
以下示例创建一个名为nginx的有状态负载,EIP将随Pod自动创建并绑定至Pod。具体字段含义请参见表1。
- 创建有状态负载时固定独占带宽类型的EIP,无需指定带宽ID,示例如下: 
     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
- 创建有状态负载时固定共享带宽类型的EIP,必须指定带宽ID,示例如下: 
     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-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名称 | 带宽名称。 | 
 | 
| 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。 
 | - | 
删除固定EIP
删除Pod后,在配置的固定EIP过期时间内,如果有同名的Pod创建,EIP依旧可用。只有在EIP过期时间内没有同名Pod创建或者删除StatefulSet时开启级联删除EIP时,固定EIP才会删除。
 
  