全部產品
Search
文件中心

Elastic Container Instance:指定ECI Pod的私網IP地址

更新時間:Jul 06, 2024

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

配置樣本

  1. 建立一個指定私網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

  2. 確認Pod的私網IP地址。

    kubectl get pod private-ip-test -o wide

    返回樣本如下,可以看到系統已為Pod分配指定的私網IP地址。

    指定ip-k8s.png