このトピックでは、EIP を Terway から ack-extend-network-controller に移行する方法について説明します。
前提条件
-
Terway をネットワークプラグインとして使用する Container Service for Kubernetes (ACK) マネージドクラスターまたは ACK 専用クラスターが必要です。詳細については、「ACK マネージドクラスターの作成」および「ACK 専用クラスターの作成 (提供終了)」をご参照ください。
影響
移行プロセスは中断を伴わず、ご利用の EIP 情報やワークロードに影響を与えません。
-
クラスターで Terway の EIP 機能を使用している場合は、このガイドを使用して EIP 管理を ack-extend-network-controller に移行してください。
-
クラスターで Terway の EIP 機能を使用していない場合は、この移行を実行する必要はありません。
移行の概要
Terway で EIP 移行機能を有効にすると、Terway はクラスター内の Pod に関連付けられている各 EIP に対して PodEIP リソースを作成します。PodEIP は、Pod の EIP 情報を管理するリソースオブジェクトです。移行後、ack-extend-network-controller が Terway から EIP 管理を引き継ぎます。
Terway で EIP 機能を有効にする方法については、「自動 EIP 割り当てのユースケース」をご参照ください。
操作手順
-
ack-extend-network-controller コンポーネントがクラスターにインストールされていないことを確認します。すでにインストールされている場合は、アンインストールしてください。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
Helm ページで、リリース名 が ack-extend-network-controller のコンポーネントが存在するかどうかを確認します。存在する場合は、そのコンポーネントの 操作 列にある 削除 をクリックしてアンインストールします。
-
Terway ネットワークプラグインを v1.6.0 以降にアップグレードします。
アップグレード手順については、「コンポーネントの管理」をご参照ください。
-
Terway の ConfigMap を変更して、EIP 移行機能を有効にします。
重要Terway で EIP 移行機能を有効にすると、Pod に関連付けられている各 EIP に対して PodEIP リソースが作成されます。この機能を有効にすると、Terway は EIP を管理しなくなります。
-
次のコマンドを実行して、Terway の ConfigMap を編集します。
kubectl edit cm eni-config -n kube-system -
eni_conf の構成を変更します。
パラメーター
値
説明
enable_eip_pool
"true"
このパラメーターが設定されていないか、
"false"に設定されている場合、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.
-
設定ファイルを変更した後、次のコマンドを実行して Terway Pod を再起動します。
kubectl delete pod -n kube-system -l app=terway-eniipTerway Pod が再起動すると、プラグインはクラスター内の EIP を自動的に ack-extend-network-controller に移行します。
-
-
Terway のログで移行ステータスを確認します。出力
eip migrate finishedは、EIP の移行が完了したことを示します。-
次のコマンドを実行して、Terway Pod の名前を取得します。
kubectl get pods -n kube-system | grep terway出力には、1 つ以上の Terway Pod の名前が返されます。
-
次のコマンドを実行して、Terway Pod のログを表示します。
kubectl logs -n kube-system <pod_name> # <pod_name> をご利用の Terway Pod の名前に置き換えます。出力
eip migrate finishedは、EIP の移行が完了したことを示します。Ds:[sg-2ze360hfgjtsemo2wyyj] InstanceID:i-2zed 5 VSwitchSelectionPolic I1013 03:44:40.082505 daemon.go:1596] subSys=network-service eip migrate finished
-
-
移行によってクラスター内に PodEIP カスタムリソース (CR) が作成されたことを確認します。
次のコマンドを実行して、移行された CR をクエリします。CR は、対応する Pod と同じ名前と名前空間を持ちます。
kubectl get podeip -n {namespace} {name} # {namespace} と {name} を、EIP に関連付けられている Pod の名前空間と名前に置き換えます。 -
Marketplace から ack-extend-network-controller をインストールし、EIP feature を有効にします。詳細については、「マーケットプレイスから ack-extend-network-controller をインストールする」をご参照ください。
-
次のコマンドを実行して、PodEIP リソースのステータスが更新されているかどうかを確認します。
kubectl get podeip -n {namespace} {name} -o yaml # {namespace} と {name} を、EIP に関連付けられている Pod の名前空間と名前に置き換えます。-
statusフィールドが空でない場合は、EIP 機能が正常に実行されていることを示します。 -
statusフィールドが空の場合、ack-extend-network-controller コンポーネントの構成とログを確認してください。
出力例:
次の表にパラメーターを示します。
パラメーター
説明
spec.allocationType.type
-
Static: 静的割り当てメソッドを指定します。Pod は指定された EIP ID を使用します。 -
Auto: EIP は Terway によって自動的に作成されます。
spec.allocationType.releaseStrategy
-
Follow: Pod が削除されると EIP が解放されることを示します。これは、ステートレスワークロードの場合、EIP と Pod の間の関連付けを維持する必要がないことを意味します。 -
TTL: EIP が解放されるまでの期間を指定します。これにより、ステートフルワークロードの EIP と Pod の間の関連付けを維持できます。
-
-
Terway の EIP 機能を無効にするには、次の手順に従います。
-
enable_eip_migrateパラメーターをfalseに設定するか、パラメーターを削除します。 -
enable_eip_poolパラメーターの値を"false"に設定するか、パラメーターを削除します。 -
Terway Pod を再起動します。
-