Terwayネットワークプラグインのelastic IPアドレス (EIP) 機能は廃止されました。 EIPを使用するには、ack-extend-network-controllerコンポーネントを使用します。 このトピックでは、EIPをTerwayからack-extend-network-controllerに移行する方法について説明します。
前提条件
ACK管理クラスターまたはACK専用クラスターが作成され、クラスターはネットワークプラグインとしてTerwayを使用します。 詳細については、「ACK管理クラスターの作成」または「ACK専用クラスターの作成」をご参照ください。
影響
移行によって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を自動的に作成してポッドに関連付けるセクションを参照してください。
手順
ack-extend-network-controllerコンポーネントがクラスターにインストールされていないことを確認します。 ack-extend-network-controllerがインストールされている場合は、まずアンインストールします。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
Helmページで、リリース名がack-extend-network-controllerであるコンポーネントが存在するかどうかを確認します。 ack-extend-network-controllerが存在する場合は、ack-extend-network-controllerの [操作] 列で [削除] をクリックして、コンポーネントをアンインストールします。
Terwayをv1.6.0以降に更新します。
Terwayの更新方法の詳細については、「コンポーネントの管理」をご参照ください。
TerwayのConfigMapを変更して、EIP移行機能を有効にします。
重要TerwayのEIP移行機能を有効にすると、Terwayはクラスター内の各ポッドのEIPに対してPodEIP CRを作成します。 EIP移行が有効になると、TerwayはEIPを管理しなくなります。
次のコマンドを実行して、TerwayのConfigMapを変更します。
kubectl edit cm eni-config -n kube-system
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.
ConfigMapを設定したら、次のコマンドを実行してTerwayポッドを再作成します。
kubectl delete pod -n kube-system -l app=terway-eniip
再作成されたTerwayポッドが開始されると、Terwayはクラスター内のEIPをack-extend-network-controllerに自動的に移行します。
移行の進行状況は、Terwayログで確認できます。 eipが移行されると、
eip migrate finished
が返されます。次のコマンドを実行して、Terwayポッドの名前を照会します。
kubectl get pods -n kube-system | grep terway
1つ以上のTerwayポッド名が返されます。
次のコマンドを実行して、Terwayポッドのログを表示します。
kubectl logs -n kube-system <pod_name> # Replace <pod_name> with the name of the Terway pod.
eip migrate finished
が返された場合、すべてのeipが移行されます。
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.
Marketplaceページで、ack-extend-network-controllerをインストールし、EIP機能を有効にします。 詳細については、「マーケットからのack-extend-network-controllerのインストール」をご参照ください。
次のコマンドを実行して、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の設定とログを確認します。
期待される出力:
下表に、各パラメーターを説明します。
パラメーター
説明
spec.allocationType.type
静的
: 指定されたIDを持つEIPをポッドに割り当てます。自動
: EIPをポッドに自動的に割り当てます。 EIPはTerwayによって作成されます。
spec.allocationType.releaseStrategy
フォロー
: ポッドが削除されると、EIPがリリースされます。 ポッドがデプロイによって作成された場合、ポッドのEIPを保持する必要はありません。TTL
: ポッドが削除された後、遅延してEIPをリリースします。 ポッドがStatefulSetによって作成されている場合は、ポッドのEIPを一定期間保持する必要があります。
TerwayのEIP機能を無効にするには、次の操作を実行します。
enable_eip_migrate
パラメーターをfalse
に設定するか、パラメーターを削除します。enable_eip_pool
パラメーターをfalse
に設定するか、パラメーターを削除します。Terwayポッドを再起動します。