すべてのプロダクト
Search
ドキュメントセンター

Elastic Container Instance:Pod のプライベート IP アドレスの指定

最終更新日:Jun 22, 2026

一部のビジネスシナリオでは、ワーカー Pod で固定 IP アドレスを使用する必要があります。このトピックでは、Pod の作成時に Elastic Container Instance (ECI) ベースの Pod にプライベート IP アドレスを指定する方法について説明します。

機能説明

デフォルトでは、Pod の作成時に、システムは eci-profile で指定した vSwitch の CIDR ブロックからプライベート IP アドレスを ECI ベースの Pod にランダムに割り当てます。一部のビジネスシナリオでは、Pod のプライベート IP アドレスを指定することが望ましい場合があります。たとえば、サービスを移行する場合、古い Pod を削除した後、新しい Pod に古い Pod の IP アドレスを指定できます。これにより、サービス継続性を確保できます。

説明

クラスターまたは Pod の vSwitch の設定方法の詳細については、「複数ゾーンにまたがる Pod の作成」をご参照ください。

使用制限

Pod に指定するプライベート IP アドレスは IPv4 アドレスである必要があります。

設定

Pod の metadata に k8s.aliyun.com/eci-private-ip-address annotation を追加して、Pod のプライベート IP アドレスを指定できます。次の点にご注意ください:

  • 指定された IP アドレスは、eci-profile の vSwitchIds パラメーターで指定された vSwitch の CIDR ブロックに属している必要があります。IP アドレスがアイドル状態であることを確認してください。

  • 複数の IP アドレスは指定できません。Deployment などのリソースを作成するときに annotation を追加する場合、Pod に設定できるレプリカは 1 つだけです。複数のレプリカを設定すると、作成される Pod は 1 つだけになります。他の 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"    # Pod にプライベート 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

    以下に出力例を示します。システムは、指定されたプライベート IP アドレスを Pod に割り当てています。

    :~$ kubectl get pod private-ip-test -o wide
    NAME              READY   STATUS    RESTARTS   AGE    IP            NODE                          NOMINATED NODE   READINESS GATES
    private-ip-test   1/1     Running   0          3m41s  172.16.0.11   virtual-kubelet-cn-beijing-h   <none>           <none>