デフォルトでは、Terway ノードは kube-system 名前空間の eni-config ConfigMap を使用します。ノードごとにカスタム vSwitch とセキュリティグループを割り当てるには、専用の ConfigMap を作成します。Terway は MergePatch (RFC 7396) を使用して、これをデフォルト設定にマージします。
ユースケース
ノードごとのネットワーク設定は、以下のような場合に構成します。
-
エグレス IP の分離:特定の Pod に、クラスターの他の部分とは別に、専用の NAT IP アドレスまたは帯域幅制限が必要な場合。
前提条件
以下が作成されていることを確認してください。
-
ノードに割り当てるvSwitchが作成されていること。
-
ノードに割り当てるセキュリティグループが作成されていること。
考慮事項
-
既存の Elastic Network Interface (ENI) は自動的に更新されません。設定変更後に作成された ENI のみが、新しい vSwitch とセキュリティグループを使用します。共有 ENI モード (デフォルト):terway-eniip バージョン >= v1.0.10.237。排他 ENI モード:terway-eniip バージョン >= v1.14.5。
-
vSwitch はノードと同じゾーンに存在する必要があります。異なるゾーンの vSwitch は適用されません。
-
セキュリティグループの制限。ENI ごとに最大 10 個のセキュリティグループを割り当てることができます。すべて同じ Virtual Private Cloud (VPC) 内で、同じタイプである必要があります。詳細については、「ENI に複数のセキュリティグループを関連付ける」をご参照ください。
ノードごとのネットワーク設定の構成
必要なネットワーク設定を含む ConfigMap を作成し、対象ノードにラベルを付けて参照させ、新しい ENI が正しい設定を使用していることを確認します。
ステップ1:ConfigMapの作成
kube-system 名前空間にfooという名前の ConfigMap を作成し、ラベル付けされたノードの vSwitch とセキュリティグループを定義します。
-
ACK コンソールにログインします。左側のナビゲーションペインで、[クラスター]をクリックします。
-
[クラスター] ページで、目的のクラスターの名前をクリックします。 左側のナビゲーションペインで、[構成] > [ConfigMaps] を選択します。
-
[ConfigMap] ページで、[名前空間] ドロップダウンリストから [kube-system] を選択し、[作成] をクリックします。
-
[作成] パネルで、[ConfigMap 名] を [foo] に設定します。[追加] をクリックし、[名前] を [eni_conf] に設定し、[値] として次の JSON を入力します。
vswitchesとsecurity_groupを実際の ID に置き換えます。{ "vswitches": { "cn-hangzhou-g": [ "vsw-10000" ], "cn-hangzhou-i": [ "vsw-10001" ] }, "security_group": "sg-10000", "security_groups": [ "sg-10000", "sg-10001" ] }パラメーター 説明 vswitchesゾーン ID と vSwitch ID のリストのマップ。各 vSwitch は対象ノードと同じゾーンに存在する必要があります。ゾーン ID と vSwitch ID は、VPC コンソール[vSwitch]の [vSwitch] で確認できます。 security_group単一のセキュリティグループを割り当てるには、このパラメーターを設定し、 security_groupsを null のままにします。security_groups複数のセキュリティグループを割り当てるには、このパラメーターを設定し、 security_groupを null のままにします。 -
[OK] をクリックします。
ステップ2:ノードへのラベル付け
この ConfigMap を使用するノードに、ラベル terway-config=foo を適用します。
既存のノードの場合:
-
クラスター詳細ページの左側のナビゲーションペインで、[ノード] > [ノード] を選択し、[ラベルとテイントの管理] をクリックします。
-
[ラベル] タブで、対象のノードを選択し、[ラベルの追加] をクリックします。
-
[追加] ダイアログで、[名前] を [terway-config] に、[値] を [foo] に設定し、[OK] をクリックします。
-
変更を適用するため、Terway Pod を再起動します。
-
左側のナビゲーションペインで、[ワークロード] > [ポッド] を選択します。
-
[名前空間] ドロップダウンリストから [kube-system] を選択し、
terway-eniipを検索し、一致するすべてのポッドを選択して、[一括削除] をクリックします。 -
[OK] をクリックします。Kubernetes によって Terway ポッドが再作成されます。
-
すべての
terway-eniipポッドの [ステータス] 列に [実行中] と表示されるまでお待ちください。すべてのポッドが実行されると、新しい設定が有効になります。
-
新しいノードの場合:
ノードプールを作成する際、[キー] を terway-config に、[値] を foo に設定したラベルを追加します。
ステップ3:設定の検証
Terway Pod の再起動後、新しい ENI が正しい vSwitch とセキュリティグループを使用していることを確認します。
-
ECS コンソールにログインします。左側のナビゲーションペインで、[インスタンスとイメージ] > [インスタンス]を選択します。
-
対象の ECS インスタンスの名前をクリックします。詳細ページで、[ENI] タブをクリックします。
-
Pod IP 割り当てに使用される ENI が、ConfigMap で指定した vSwitch とセキュリティグループに関連付けられていることを確認します。
新しい Pod の IP アドレスが期待される vSwitch CIDR ブロック内にない場合は、「コンテナネットワークに関する FAQ」をご参照ください。