某些業務情境下,可能需要某一業務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地址。