某些业务场景下,可能需要某一业务Pod使用某个固定的IP地址。本文介绍在创建ECI Pod时,如何指定Pod的私网IP地址。
功能说明
默认情况下,创建ECI Pod时,系统会从eci-profile中配置的交换机网段中,随机为Pod分配一个私网IP地址。某些业务场景下,您可能想要指定Pod的私网IP地址。例如迁移业务时,在删除了旧的Pod后,可以为新创建的Pod指定使用旧Pod对应的IP地址,以此来保证业务连续性。
说明
关于如何为集群或者Pod配置交换机,请参见多可用区创建Pod。
使用限制
指定私网IP地址功能仅支持IPv4地址,不支持IPv6地址。
配置说明
您可以在Pod metadata中添加k8s.aliyun.com/eci-private-ip-address
的Annotation来指定ECI Pod的私网IP地址。相关注意事项如下:
指定的IP地址必须属于eci-profile中
vSwitchIds
字段对应交换机的网段。请确保该IP地址没有被占用。不支持指定多个IP地址,即创建Deployment等资源时,如果添加了该Annotation,只允许1个副本。如果配置了多个副本,只会成功1个Pod,其他Pod会因无法分配IP地址而创建失败。
配置示例
创建一个指定私网IP地址的Pod。
kubectl create -f private-ip-test.yaml
private-ip-test.yaml的内容示例如下:
apiVersion: v1 kind: Pod metadata: name: private-ip-test labels: alibabacloud.com/eci: "true" annotations: k8s.aliyun.com/eci-private-ip-address: "172.16.0.11" #指定私网IP地址 spec: containers: - image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2 name: test-container
确认Pod的私网IP地址。
kubectl get pod private-ip-test -o wide
返回示例如下,可以看到系统已为Pod分配指定的私网IP地址。