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

Container Service for Kubernetes:VPCの複数のルートテーブルの設定

最終更新日:Oct 31, 2024

Container Service for Kubernetes (ACK) は、クラウドコントローラーマネージャー (CCM) を使用して、クラスターがデプロイされている仮想プライベートクラウド (VPC) のルートテーブルにルートを追加します。 これにより、クラスター内のポッド間のネットワーク接続が可能になります。 cloud-config ConfigMapを更新して、ACKクラスターがデプロイされているVPCに複数のルートテーブルを設定できます。 このトピックでは、ACKクラスターがデプロイされているVPCに複数のルートテーブルを設定する方法について説明します。

前提条件

  • ACKクラスターが作成されます。

    • ACK管理クラスターを作成します。 詳細については、「ACK管理クラスターの作成」をご参照ください。

      説明

      複数のルートテーブルを設定できるのは、Kubernetes 1.18を実行するACKマネージドクラスターのみです。 ACK管理クラスターのKubernetesバージョンが1.18より前の場合、チケットを起票します。

    • ACK専用クラスターを作成します。 詳細については、「ACK専用クラスターの作成」をご参照ください。

  • CCMのバージョンはv1.9.3.86-g4454991-aliyunより遅いです。 CCMのバージョンを確認する方法の詳細については、「コンポーネントの管理」をご参照ください。

  • Flannelネットワークプラグインは、ACKクラスターで使用されます。

  • クラスターが存在するVPCには、複数のルートテーブルがあります。

    説明

    VPCにルートテーブルが1つしかない場合、VPCに複数のルートテーブルを設定する必要はありません。

背景情報

VPCに複数のルートテーブルが設定されている場合、Elastic Compute Service (ECS) インスタンスを異なるルートテーブルに関連付けることができます。 CCMの以前のバージョンでは、VPCごとに1つのルートテーブルのみを設定できます。 したがって、ACKコンソールでCCMを最新バージョンに更新する必要があります。 CCMバージョンの更新方法の詳細については、「コンポーネントの管理」をご参照ください。

ACK管理クラスターがデプロイされているVPCに複数のルートテーブルを設定する

ACK管理クラスターがACKコンソールでデプロイされているVPCに複数のルートテーブルを設定できます。

  1. ルートテーブルのIDを取得します。

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

    2. On theルートテーブルページで、検索条件をVPC IDクラスターが存在するVPCのIDを入力し、検索アイコンをクリックします。

      路由表

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

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

  4. On theアドオンページ、CCMを見つけてクリック設定.

    配置.png

  5. では、routeTableIDフィールドで取得したルートテーブルIDを入力します。ステップ1をクリックし、OK.

    VPCのシステムルートテーブルのIDを入力し、ルートテーブルIDをコンマ (,) で区切る必要があります。 例: vtb-t4n788888 **** 、vtb-t4n7k6u3m0n840799 *** 。路由表.png

ACK専用クラスターがデプロイされているVPCに複数のルートテーブルを設定する

ACK専用クラスターがデプロイされているVPCに対して、ACKコンソールまたはkubectlを使用して複数のルートテーブルを設定できます。

kubectlを使う

kubectlクライアントを使用してVPCの複数のルートテーブルを設定するには、kubectlクライアントがACK専用クラスターに接続されていることを確認します。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。

  1. cloud-config ConfigMapを更新します。

    kubectl edit cm -n kube-system cloud-configコマンドを実行して、cloud-config ConfigMapを変更します。 ${ROUTE_TABLES_IDS} をVPC内のルートテーブルのIDに置き換えます。 システムルートテーブルのIDが含まれていることを確認してください。 複数のルートテーブルIDはコンマ (,) で区切ります。 例: vtb-t4n788888 **** 、vtb-t4n7k6u3m0n840799 **** 。

    重要

    cloud-config ConfigMapで ${ROUTE_TABLES_IDS} のみを変更する必要があります。

    "routeTableIDs": "${ROUTE_TABLES_IDS}"
  2. 次のコマンドを実行して、CCMを実行するポッドを再起動します。

    kubectl -n kube-system delete po -lapp=cloud-controller-manager

    ポッドを再起動すると、指定したルートテーブルにクラスターノードのルートが表示されます。

ACKコンソールの使用

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

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

  3. kube-system名前空間を選択します。 cloud-config ConfigMapを見つけ、[操作] 列の [YAMLの編集] をクリックします。

  4. [YAMLで表示] パネルで、routeTableIDをVPCのルートテーブルのIDに設定します。 システムルートテーブルのIDが含まれていることを確認してください。 複数のルートテーブルIDはコンマ (,) で区切ります。 例: vtb-t4n788888 **** 、vtb-t4n7k6u3m0n840799 **** 。 次に、[OK] をクリックします。

    cloud-config

  5. 詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [DaemonSets] を選択します。

  6. kube-system名前空間を選択します。 cloud-controller-manager DaemonSetを見つけて、ページの下部にある [バッチ再デプロイ] をクリックします。

    再デプロイが完了すると、クラスターノードのルートが指定されたルートテーブルに表示されます。