クラウドとエッジのコラボレーションのシナリオでは、エッジコンピューティングユニットで実行されるサービスへのアクセスは、閉ループ内で制御されます。 NGINX Ingressコントローラーをエッジノードプールおよびクラウド上のノードプールにデプロイして、エッジコンピューティングユニットにデプロイされるサービスの負荷分散を実現できます。 このトピックでは、ACK edgeクラスターのエッジノードプールおよびオンクラウドノードプールにNGINX Ingressコントローラーをデプロイする方法について説明します。
背景情報
ACK Edgeは、ノードの自律性、エッジコンピューティングユニット、エッジトラフィック管理、オープンソースO&M APIのサポートなどの機能を提供します。 これらの機能は、アプリケーションに対応する変更を加えることなく使用できます。 この機能は、エッジコンピューティングのシナリオで、アプリケーションのライフサイクルを管理し、リソースをネイティブかつ集中的にスケジュールするのに役立ちます。 いくつかの手順で、エッジノードを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-ingress-nginx-v1をACK Edgeクラスターに初めてデプロイするときにデフォルト設定を使用する場合、ack-ingress-nginx-v1はクラスターのデフォルトノードプールにデプロイされます。
手順
ACKコンソールにログインします。
ACKコンソールの左側のナビゲーションウィンドウで、 を選択します。
On theアプリカタログのタブマーケットプレイスページ、検索し、ack-ingress-nginx-v1をクリックします。
[ack-ingress-nginx-v1] ページで、デプロイページの右上隅にあります。
配置ウィザードで、クラスター,名前空間、およびリリース名パラメーターを使用します。
説明ノードプールにack-ingress-nginx-v1をデプロイする場合、リリース名をack-ingress-nginx-v1-{ノードプール名} の形式で指定することを推奨します。 例: ack-ingress-nginx-v1-edge-hangzhou
クリック次へのパラメータを設定します。パラメータウィザードページ。
エッジノードプールのIDとクラウドノードプールのIDを取得する必要があります。 IDを取得するには、ACKコンソールのクラスターの詳細ページに移動し、左側のナビゲーションウィンドウで を選択します。 次に、ノードプールリストでノードプールIDを表示できます。
オンクラウドノードプールにack-ingress-nginx-v1をデプロイするときに、次の説明に基づいてパラメーターを設定します。
サービスに次のラベルを追加します。 nodeSelector
パラメーター:alibabacloud.com/nodepool-id {ノードプールID}
説明サービスでは、
パラメーター。alibabacloud.com/nodepool-id: {ノードプールID}
のみを指定する必要があります。 nodeSelectoringressClassResource
パラメーターのname
フィールドとcontrollerValue
フィールドを設定します。説明ACK Edgeクラスターにack-ingress-nginx-v1を複数回デプロイする場合は、デプロイするたびに
name
フィールドとcontrollerValue
フィールドに一意の値を指定する必要がありack-ingress-nginx-v1。 次の説明に基づいてフィールドを設定します。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}
説明サービスでは、
パラメーター。alibabacloud.com/nodepool-id: {ノードプールID}
のみを指定する必要があります。 nodeSelectorグローバルを設定します。 edgeNodePool
パラメーターをtrue
に設定します。 ack-ingress-nginx-v1は自動的に次の操作を実行します。エッジノードプールにデプロイされているNGINX Ingressコントローラーに関連付けられているサービスのタイプを、LoadBalancerからNodePortに変更します。 エッジにデプロイされたアプリケーションがインターネットアクセスを必要とする場合は、パブリックIPアドレスを持つロードバランサーを構成する必要があります。
NGINX Ingressコントローラーのパブリックイメージアドレスを指定します。 これにより、システムがAlibaba Cloudでホストされているプライベートイメージのプルに失敗した場合のデプロイの失敗を防ぎます。
ingressClassResource
パラメーターのname
フィールドとcontrollerValue
フィールドを設定します。説明ACK Edgeクラスターにack-ingress-nginx-v1を複数回デプロイする場合は、デプロイするたびに
name
フィールドとcontrollerValue
フィールドに一意の値を指定する必要がありack-ingress-nginx-v1。 次の説明に基づいてフィールドを設定します。name
をack-nginx-{ノードプール名}
形式で設定します。 例:ack-nginx-edge-hangzhou
controllerValue
を"k8s.io/ack-ingress-nginx-{ノードプール名}"
形式で設定します。 例:"k8s.io/ack-ingress-nginx-edge-hangzhou"
クリックOK.
クラスターの詳細ページの左側のナビゲーションウィンドウで、 .
Helmページで、NGINX Ingressコントローラーがデプロイされていることがわかります。