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

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

最終更新日:Dec 28, 2024

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

機能の説明

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

説明

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

制限事項

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

構成の説明

Podのメタデータにk8s.aliyun.com/eci-private-ip-addressアノテーションを追加して、PodのプライベートIPアドレスを指定できます。以下の点に注意してください。

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

  • 複数のIPアドレスを指定することはできません。Deploymentなどのリソースを作成するときにアノテーションを追加する場合、Podには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"    # 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 -o wide

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

    指定ip-k8s.png