为Pod配置固定EIP
使用场景
CCE Autopilot集群支持为StatefulSet工作负载或直接创建的Pod分配固定的公网IP(EIP)。
约束限制
- 开启固定EIP功能需要和Pod自动创建EIP功能配合使用,详情请参见为Pod配置EIP。
- 目前只支持StatefulSet类型的Pod或直接创建的Pod固定EIP,暂不支持Deployment等其他类型的工作负载配置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类型。 |
|
yangtse.io/eip-bandwidth-id |
使用共享型带宽时必选 |
空 |
已有的带宽ID。
|
- |
删除固定EIP
删除Pod后,在配置的固定EIP过期时间内,如果有同名的Pod创建,EIP依旧可用。只有在EIP过期时间内没有同名Pod创建或者删除StatefulSet时开启级联删除EIP时,固定EIP才会删除。