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

Container Service for Kubernetes:Terwayからack-extend-network-controllerへのEIPの移行

最終更新日:Oct 31, 2024

Terwayネットワークプラグインのelastic IPアドレス (EIP) 機能は廃止されました。 EIPを使用するには、ack-extend-network-controllerコンポーネントを使用します。 このトピックでは、EIPをTerwayからack-extend-network-controllerに移行する方法について説明します。

前提条件

影響

重要

移行によってEIP情報が変更されたり、ビジネスに影響を与えることはありません。

  • クラスターがTerwayのEIP機能を使用している場合、割り当てられたリソースをack-extend-network-controllerのEIPコントローラーに移行してから、EIPを移行できます。

  • クラスターがTerwayのEIP機能を使用していない場合は、この操作を実行する必要はありません。

使用上の注意

TerwayのEIP移行機能を有効にすると、Terwayはクラスター内の各ポッドのEIP用のPodEIP CustomResource (CR) を作成します。 PodEIPは、ポッドに関連するEIP情報を管理するために使用されるCustomResourceDefinition (CRD) です。 EIP移行が有効になると、TerwayはEIPを管理しなくなります。 EIPはack-extend-network-controllerによって管理されます。

TerwayのEIP機能を有効にする方法の詳細については、「専用EIPをポッドに関連付ける」トピックのEIPを自動的に作成してポッドに関連付けるセクションを参照してください。

手順

  1. ack-extend-network-controllerコンポーネントがクラスターにインストールされていないことを確認します。 ack-extend-network-controllerがインストールされている場合は、まずアンインストールします。

    1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[アプリケーション] > [ヘルム] を選択します。

    3. Helmページで、リリース名がack-extend-network-controllerであるコンポーネントが存在するかどうかを確認します。 ack-extend-network-controllerが存在する場合は、ack-extend-network-controllerの [操作] 列で [削除] をクリックして、コンポーネントをアンインストールします。

  2. Terwayをv1.6.0以降に更新します。

    Terwayの更新方法の詳細については、「コンポーネントの管理」をご参照ください。

  3. TerwayのConfigMapを変更して、EIP移行機能を有効にします。

    重要

    TerwayのEIP移行機能を有効にすると、Terwayはクラスター内の各ポッドのEIPに対してPodEIP CRを作成します。 EIP移行が有効になると、TerwayはEIPを管理しなくなります。

    1. 次のコマンドを実行して、TerwayのConfigMapを変更します。

      kubectl edit cm eni-config -n kube-system
    2. eni_conf ConfigMapで次のパラメーターを変更します。

      パラメーター

      利点

      説明

      enable_eip_プール

      "true"

      このパラメーターが指定されていないか、falseに設定されている場合、EIP機能は無効になり、EIPを移行する必要はありません。

      enable_eip_migrate

      true

      このパラメーターをtrueに設定すると、移行機能が有効になります。

      設定ファイルの例を次に示します。 他のパラメータは変更しないでください。

      # The preceding content is omitted. 
        eni_conf: |
          {
            "version": "1",
      
            "enable_eip_pool": "true",
            "enable_eip_migrate": true,
            "vswitch_selection_policy": "ordered"
          }
      # The following content is omitted.

    1. ConfigMapを設定したら、次のコマンドを実行してTerwayポッドを再作成します。

      kubectl delete pod -n kube-system -l app=terway-eniip

      再作成されたTerwayポッドが開始されると、Terwayはクラスター内のEIPをack-extend-network-controllerに自動的に移行します。

  4. 移行の進行状況は、Terwayログで確認できます。 eipが移行されると、eip migrate finishedが返されます。

    1. 次のコマンドを実行して、Terwayポッドの名前を照会します。

      kubectl get pods -n kube-system | grep terway

      1つ以上のTerwayポッド名が返されます。

    2. 次のコマンドを実行して、Terwayポッドのログを表示します。

      kubectl logs -n kube-system <pod_name> # Replace <pod_name> with the name of the Terway pod.

      eip migrate finishedが返された場合、すべてのeipが移行されます。

      image.png

  5. PodEIP CRがクラスターに作成されているかどうかを確認します。

    次のコマンドを実行して、PodEIP CRを照会します。 PodEIP CRは、ポッドと同じ名前と名前空間を使用します。

    kubectl get podeip -n {namespace} {name} # Replace {namespace} and {name} with the namespace and name of the pod associated with the EIP.

  6. Marketplaceページで、ack-extend-network-controllerをインストールし、EIP機能を有効にします。 詳細については、「マーケットからのack-extend-network-controllerのインストール」をご参照ください。

  7. 次のコマンドを実行して、PodEIP CRのステータスが更新されているかどうかを確認します。

    kubectl get podeip -n {namespace} {name} -o yaml # Replace {namespace} and {name} with the namespace and name of the pod associated with the EIP.

    • statusフィールドが空でない場合、EIP機能は期待どおりに機能します。

    • statusフィールドが空の場合、ack-extend-network-controllerの設定とログを確認します。

    期待される出力:

    PodEIP CRのステータス

    apiVersion: alibabacloud.com/v1beta1
    kind: PodEIP
    metadata:
      creationTimestamp: "2023-10-24T08:24:37Z"
      finalizers:
      - podeip-controller.alibabacloud.com/finalizer
      generation: 1
      name: example-xxx-xx
      namespace: default
      resourceVersion: "44013"
      uid: 4744a7af-***-***-ad06-***17aecce
    spec:
      allocationID: eip-xxxxxx
      allocationType:
        releaseStrategy: Follow
        type: Auto
    status:
      eipAddress: 47.XX.XX.XX
      internetChargeType: PayByTraffic
      isp: BGP
      networkInterfaceID: eni-xxxxxxx
      podLastSeen: "2023-10-24T08:31:22Z"
      privateIPAddress: 192.XX.XX.XX
      resourceGroupID: rg-xxxxxx
      status: InUse

    下表に、各パラメーターを説明します。

    パラメーター

    説明

    spec.allocationType.type

    • 静的: 指定されたIDを持つEIPをポッドに割り当てます。

    • 自動: EIPをポッドに自動的に割り当てます。 EIPはTerwayによって作成されます。

    spec.allocationType.releaseStrategy

    • フォロー: ポッドが削除されると、EIPがリリースされます。 ポッドがデプロイによって作成された場合、ポッドのEIPを保持する必要はありません。

    • TTL: ポッドが削除された後、遅延してEIPをリリースします。 ポッドがStatefulSetによって作成されている場合は、ポッドのEIPを一定期間保持する必要があります。

  8. TerwayのEIP機能を無効にするには、次の操作を実行します。

    1. enable_eip_migrateパラメーターをfalseに設定するか、パラメーターを削除します。

    2. enable_eip_poolパラメーターをfalseに設定するか、パラメーターを削除します。

    3. Terwayポッドを再起動します。