クラウドエッジ連携シナリオでは、エッジユニット下のサービスのトラフィック処理は、エッジノードプール内で優先されます。このトピックでは、ACK Edge クラスター のエッジノードプールとクラウドノードプールの両方に NGINX Ingress コントローラーをデプロイし、エッジユニットサービスに負荷分散を提供する方法について説明します。
背景情報
ACK Edge は、非侵入型の機能強化のために次の機能を提供します。
エッジ自律性: ネットワーク障害時の自己修復
エッジユニット: エッジノードグループの論理的な隔離
エッジトラフィック管理: ローカル優先トラフィックの優先順位付け
ネイティブ操作 API サポート: Kubernetes API との完全な互換性
ACK Edge は、クラウドエッジ環境全体での統一されたアプリケーションライフサイクル管理とリソーススケジューリングをネイティブにサポートしています。いくつかの手順で ACK Edge クラスターにエッジノードを追加できます。
注意事項
エッジノードプールとクラウドノードプールに ack-ingress-nginx-v1 をデプロイする場合は、次の点に注意してください。
ACK Edge クラスター の Kubernetes バージョンは 1.19 以降です。
ACK Edge クラスター に
ack-ingress-nginx-v1を複数回デプロイできます。ack-ingress-nginx-v1をデプロイするたびに、一意のリリース名を指定します。操作を分離するために、デプロイごとに独立した名前空間を使用することをお勧めします。ACK Edge クラスター に初めて
ack-ingress-nginx-v1をデプロイするときにデフォルト設定を使用すると、ack-ingress-nginx-v1 はクラスターのデフォルトノードプールにデプロイされます。
手順
ACK コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
[アプリカタログ] タブの [マーケットプレイス] ページで、ack-ingress-nginx-v1 を見つけてクリックします。
ack-ingress-nginx-v1 ページで、ページの右上隅にある [デプロイ] をクリックします。
デプロイウィザードで、[クラスター]、[名前空間]、および [リリース名] パラメーターを設定します。
説明ノードプールに ack-ingress-nginx-v1 をデプロイする場合は、Ack-ingress-nginx-v1-{ノードプール名} 形式でリリース名を指定することをお勧めします。例: ack-ingress-nginx-v1-edge-hangzhou。
[次へ] をクリックして、[パラメーター] ウィザードページのパラメーターを設定します。
service.nodeSelector構成のノードプール ID を取得するには、ACK コンソール のクラスター詳細ページに移動し、左側のナビゲーションウィンドウで を選択します。次に、ノードプールリストでクラウドノードプール ID とエッジノードプール ID を取得します。クラウドノードプールに ack-ingress-nginx-v1 をデプロイする場合は、次のパラメーターを設定します:
nodeSelectorパラメーターに次のラベルを追加します:alibabacloud.com/nodepool-id {ノードプール ID}。説明nodeSelectorパラメーターには、alibabacloud.com/nodepool-id: {ノードプール ID}のみ指定する必要があります。
ingressClassResourceパラメーターのnameフィールドとcontrollerValueフィールドを設定します。説明ACK Edge クラスター に ack-ingress-nginx-v1 を複数回デプロイする場合は、ack-ingress-nginx-v1 をデプロイするたびに、
nameフィールドとcontrollerValueフィールドに一意の値を指定する必要があります。次の説明に基づいてフィールドを設定します。nameはack-nginx-{ノードプール名}形式で設定します。例:ack-nginx-edge-hangzhou。controllerValueは"k8s.io/ack-ingress-nginx-{ノードプール名}"形式で設定します。例:"k8s.io/ack-ingress-nginx-edge-hangzhou"。

エッジノードプールに ack-ingress-nginx-v1 をデプロイする場合は、次のパラメーターを設定します:
nodeSelectorパラメーターに次のラベルを追加します:alibabacloud.com/nodepool-id: {ノードプール ID}。説明nodeSelectorパラメーターには、alibabacloud.com/nodepool-id: {ノードプール ID}のみ指定する必要があります。
global.edgeNodePoolパラメーターをtrueに設定します。 ack-ingress-nginx-v1 は自動的に次の操作を実行します。エッジノードにデプロイされた NGINX Ingress コントローラーのサービス タイプは、
LoadBalancerからNodePortに自動的に変更されます。エッジにデプロイされたアプリケーションをパブリックインターネットに公開するには、パブリック IP アドレスを持つロードバランサーを構成する必要があります。NGINX Ingress コントローラーのパブリックイメージアドレスを指定します。これにより、Alibaba Cloud でホストされているプライベートイメージをプルできない場合のデプロイメントの失敗を防ぎます。

ingressClassResourceパラメーターのnameフィールドとcontrollerValueフィールドを設定します。説明ACK Edge クラスター に ack-ingress-nginx-v1 を複数回デプロイする場合は、ack-ingress-nginx-v1 をデプロイするたびに、
nameフィールドとcontrollerValueフィールドに一意の値を指定する必要があります。次の説明に基づいてフィールドを設定します。nameはack-nginx-{ノードプール名}形式で設定します。例:ack-nginx-edge-hangzhou。controllerValueは"k8s.io/ack-ingress-nginx-{ノードプール名}"形式で設定します。例:"k8s.io/ack-ingress-nginx-edge-hangzhou"。

[OK] をクリックします。
クラスター詳細ページの左側のナビゲーションウィンドウで、 を選択します。
Helm ページで、NGINX Ingress コントローラーがデプロイされていることを確認できます。