ハイブリッドクラスターの CNI プラグインは、データセンターで実行されるコンポーネントと、クラウドノードで実行されるコンポーネントの 2 つで構成されます。このトピックでは、ハイブリッドクラスターで Terway プラグインをデプロイおよび構成する方法について説明します。
前提条件
「シナリオ 2: データセンターのコンテナネットワークで BGP ネットワークを使用する」および「シナリオ 3: データセンターのコンテナネットワークでホストネットワークを使用する」の場合、登録済みクラスターの作成時に Terway ネットワークパラメーターを構成する必要があります。
必要に応じて IPvlan チェックボックスを選択またはクリアします。
Pod 仮想スイッチを構成します。
サービス CIDR ブロックを構成します。
詳細については、「ACK One 登録済みクラスターの作成」をご参照ください。
シナリオ 1: データセンターのコンテナネットワークでオーバーレイネットワークを使用する
データセンターのコンテナネットワークでオーバーレイネットワークを使用する場合、クラウドノードもこのモードを使用できます。クラウドノードが CNI プラグイン DaemonSet で使用されるコンテナイメージをプルできることを確認してください。
一般的なオーバーレイネットワークモードは次のとおりです。
Flannel VXLAN モード
Calico IPIP モード
Cilium VXLAN モード
シナリオ 2: データセンターのコンテナネットワークで BGP ネットワークを使用する
データセンターのコンテナネットワークでボーダーゲートウェイプロトコル (BGP) ネットワークを使用する場合、クラウドノードは Terway ネットワークを使用する必要があります。クラウドコンテナとオンプレミスコンテナ間のネットワーク通信を有効にする方法の詳細については、「VBR での BGP の構成」をご参照ください。
このシナリオでは、次の条件が満たされていることを確認してください。
オンプレミス CNI プラグイン (BGP ルートリフレクターモードの Calico など) の DaemonSet がクラウドノードにスケジュールされないこと。
Terway プラグインの DaemonSet がオンプレミスコンピューティングノードにスケジュールされないこと。
登録済みクラスターでは、ノードプールのスケーリングによって追加されたコンピューティングノードには alibabacloud.com/external=true ラベルが割り当てられます。このラベルをフィルター条件として使用して、クラウドノードとオンプレミスノードを区別できます。
オンプレミスの Calico プラグインの場合、nodeAffinity を使用して、alibabacloud.com/external=true ラベルを持つノードにスケジュールされないようにします。この方法は、オンプレミスで実行され、クラウドにスケジュールされるべきではないすべてのワークロードに適用できます。Calico プラグインを更新するには、次のコマンドを実行します。
cat <<EOF > calico-ds.patch
spec:
template:
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: alibabacloud.com/external
operator: NotIn
values:
- "true"
EOF
kubectl -n kube-system patch ds calico-node -p "$(cat calico-ds.patch)"デフォルトでは、Terway プラグインは alibabacloud.com/external=true ラベルを持つクラウドノードにのみスケジュールされます。
シナリオ 3: データセンターのコンテナネットワークでホストネットワークを使用する
データセンターのコンテナネットワークでホストネットワークを使用する場合、Terway プラグインの DaemonSet がオンプレミスノードにスケジュールされないことを確認する必要があります。デフォルトでは、Terway プラグインは alibabacloud.com/external=true ノードラベルを持つクラウドノードにのみスケジュールされます。
Terway プラグインのインストールと構成
「シナリオ 2」および「シナリオ 3」では、ハイブリッドクラスターのクラウドノードに Terway プラグインをインストールして構成する必要があります。
ステップ 1: Terway プラグインの RAM 権限を構成する
コンソールでの構成
Resource Access Management (RAM) ユーザーを作成し、次のカスタムポリシーを RAM ユーザーに付与します。詳細については、「RAM を使用してクラスターとクラウドリソースへのアクセス権限を付与する」をご参照ください。
Container Service for Kubernetes (ACK) コンソール にログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
[クラスター] ページで、クラスターの名前をクリックします。左側のナビゲーションウィンドウで、[設定 > シークレット] をクリックします。
「シークレット」ページで、YAML のリソースの作成 をクリックします。alibaba-addon-secret という名前のシークレットを作成するには、以下の内容を入力します。
説明コンポーネントは、このシークレットに保存されている AccessKey ID と AccessKey Secret を使用してクラウドサービスにアクセスします。alibaba-addon-secret シークレットがすでに存在する場合は、このステップをスキップできます。
apiVersion: v1 kind: Secret metadata: name: alibaba-addon-secret namespace: kube-system type: Opaque stringData: access-key-id: <The AccessKey ID of the RAM user> access-key-secret: <The AccessKey secret of the RAM user>
onectl を使用した構成
オンプレミス環境のマシンに onectl をインストールします。詳細については、「onectl を使用して登録済みクラスターを管理する」をご参照ください。
Terway プラグインの RAM 権限を構成するには、次のコマンドを実行します。
onectl ram-user grant --addon terway-eniip期待される出力:
Ram policy ack-one-registered-cluster-policy-terway-eniip granted to ram user ack-one-user-ce313528c3 successfully.
ステップ 2: Terway プラグインのインストール
コンソールからインストール
「Container Service Management Console」および「」にログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
「クラスターリスト」ページで、ご利用のクラスター名をクリックします。左側のナビゲーションウィンドウで、アドオン管理 をクリックします。
「アドオン管理」ページで、ネットワーク タブをクリックします。terway-eniip セクションで、インストール をクリックします。
onectl を使用したインストール
次のコマンドを実行して、Terway プラグインをインストールします。
onectl addon install terway-eniip期待される出力例:
Addon terway-eniip, version **** installed.