このトピックでは、Distributed Cloud Container Platform for Kubernetes (ACK One) フリートインスタンスのマルチクラスタゲートウェイ機能を有効または無効にする方法と、関連付けられたクラスタをマルチクラスタゲートウェイに接続する方法について説明します。
課金
マルチクラスターゲートウェイの使用に対して課金されます。 マルチクラスターゲートウェイの課金の詳細については、「課金の概要」をご参照ください。
前提条件
AliyunAdcpManagedMseRolePolicyポリシーは、AliyunAdcpManagedMseRole Resource Access Management (RAM) ロールにアタッチされています。 次のコードブロックは、AliyunAdcpManagedMseRolePolicyのポリシードキュメントを示しています。
フリート管理機能が有効になっています。 フリートインスタンスのkubeconfigファイルはACK Oneコンソールで取得され、kubectlクライアントはフリートインスタンスに接続されています。
関連するクラスターが追加されました。 関連付けられたクラスターとACK One Fleetインスタンスは、同じ仮想プライベートクラウド (VPC) にデプロイされます。
マルチクラスターゲートウェイ機能の有効化
コンソールの使用
ACK Oneコンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。
マルチクラスタゲートウェイページで、マルチクラスタゲートウェイの有効化をクリックします。 表示されたメッセージボックスで、[OK] をクリックします。
CLIの使用
Alibaba Cloud CLIが最新であることを確認し、次のコマンドを実行してマルチクラスターゲートウェイ機能を有効にします。
<YOUR_FLEET_CLUSTERID>
をフリートインスタンスのIDに置き換えます。aliyun adcp UpdateHubClusterFeature --ClusterId <YOUR_FLEET_CLUSTERID> --GatewayEnabled true
次のコマンドを実行して、マルチクラスタゲートウェイ機能が有効になっているかどうかを確認します。
aliyun adcp DescribeHubClusterDetails --ClusterId <YOUR_FLEET_CLUSTERID> |grep -B4 -A1 EnabledMSE`
期待される出力:
Status
パラメーターの値がTrue
の場合、マルチクラスターゲートウェイ機能が有効になります。{ "Message": "", "Reason": "", "Status": "True", "Type": "EnabledMSE" },
マルチクラスタゲートウェイの作成
コンソールの使用
ACK Oneコンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。
マルチクラスターゲートウェイページの右上隅にある [ゲートウェイの作成] をクリックします。
表示されるパネルで、ビジネス要件に基づいてマルチクラスターゲートウェイの作成に使用するYAMLファイルを変更し、[作成] をクリックします。
CLIの使用
ACK One FleetインスタンスのvSwitch IDを取得して記録します。
次のコマンドを実行して、vSwitch IDを照会します。
aliyun adcp DescribeHubClusterDetails --ClusterId <YOUR_FLEET_CLUSTERID>
出力の
vSwitch
フィールドにvSwitch IDを記録します。
mseingressconfig.yamlという名前のファイルを作成し、次の内容をファイルに追加します。
${vsw-id1}
を記録したvSwitch IDに置き換えます。 ゲートウェイ構成ファイルに注釈を追加して、ゲートウェイに追加する関連クラスターを指定できます。apiVersion: mse.alibabacloud.com/v1alpha1 kind: MseIngressConfig metadata: name: ackone-gateway # Connect associated clusters to the MSE gateway. #annotations: # mse.alibabacloud.com/remote-clusters: ${cluster1},${cluster2} spec: common: instance: replicas: 3 spec: 2c4g network: # You can configure both an Internet-facing Server load Balancer (SLB) instance and an internal-facing SLB instance. If no SLB instance is specified, an Internet-facing SLB instance is used by default. #publicSLBSpec: slb.s2.small #privateSLBSpec: slb.s2.small vSwitches: - ${vsw-id1} ingress: local: ingressClass: mse name: mse-ingress
次のコマンドを実行して、ACK One Fleetインスタンスにmse-ingressという名前のゲートウェイを作成します。
kubectl apply -f mseingressconfig.yaml
次のコマンドを実行して、ゲートウェイが作成されているかどうかを確認します。
kubectl get mseingressconfig ackone-gateway
期待される出力:
NAME STATUS AGE ackone-gateway Listening 3m15s
出力は、ゲートウェイがリスニング状態にあることを示します。 これは、クラウドネイティブゲートウェイが作成されて実行されていることを意味します。 ゲートウェイは、IngressClassesが
mse
であるIngressをリッスンします。MseIngressConfigから作成されたゲートウェイのステータスは、Pending、Running、Listeningの順に変わります。 状態の説明:
保留中: クラウドネイティブゲートウェイが作成中です。 このプロセスには約3分かかります。
実行中: クラウドネイティブゲートウェイが作成され、実行中です。
リスニング: クラウドネイティブゲートウェイが実行中で、Ingressでリッスンします。
Failed: クラウドネイティブゲートウェイが無効です。 [ステータス] フィールドのメッセージを確認して、問題をトラブルシューティングできます。
関連クラスターの追加または削除
コンソールの使用
ACK Oneコンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。
[マルチクラスタゲートウェイ] ページの上部で、[ゲートウェイの選択] ドロップダウンリストから管理するマルチクラスタゲートウェイを選択し、右上隅の [変更] をクリックします。
ModifyGatewayパネルで、MseIngresConfig.yamlファイルを変更します。
annotations
パラメーターでクラスターIDを変更し、[更新] をクリックします。サンプルコード:
annotations: mse.alibabacloud.com/remote-clusters: ${cluster1-id},${cluster2-id}
${cluster1-id}
と${cluster2-id}
は、関連付けられているクラスターのIDです。 複数のクラスターIDはコンマ (,) で区切ります。 クラスターIDを変更して、関連するクラスターを追加または削除できます。マルチクラスターゲートウェイの作成時に関連付けられたクラスターをマルチクラスターゲートウェイに追加しない場合、MseIngresConfig.yamlファイルには
annotations
パラメーターがありません。 指定された関連クラスターをマルチクラスターゲートウェイに追加するには、上記のコードをMseIngresConfig.yamlファイルのmetadata
オブジェクトに追加し、クラスターIDを変更する必要があります。
CLIの使用
ACK One Fleetインスタンスのmseingressconfigオブジェクトの対応するアノテーションを変更して、関連するクラスターを追加または削除できます。
${cluster1-id}
と${cluster2-id}
を関連付けられたクラスターのIDに置き換えます。 複数のクラスターIDはコンマ (,) で区切ります。annotations: mse.alibabacloud.com/remote-clusters: ${cluster1-id},${cluster2-id}
次のコマンドを実行して、関連付けられているクラスターがマルチクラスターゲートウェイに追加されているかどうかを確認します。
kubectl get mseingressconfig ackone-gateway -ojsonpath="{.status.remoteClusters}"
期待される出力:
[{"clusterId":"c7fb82****"},{"clusterId":"cd3007****"}]
出力は、関連するクラスターのIDと、失敗メッセージが返されないことを示します。 これは、関連付けられたクラスタがマルチクラスタゲートウェイに追加されることを意味する。
次のコマンドを実行して、マルチクラスタゲートウェイに追加された関連クラスタを照会します。
kubectl get mseingressconfig ackone-gateway
次のコマンドを実行して、関連するクラスターを追加または削除します。
mse.alibabacloud.com/remote-clusters=${cluster1},${cluster2}
は、マルチクラスターゲートウェイに追加する関連クラスターを示します。kubectl annotate mseingressconfig ackone-gateway mse.alibabacloud.com/remote-clusters=${cluster1},${cluster2} --overwrite=true
マルチクラスターゲートウェイ機能の無効化
マルチクラスタゲートウェイを削除すると、ビジネスに悪影響を与える可能性があります。 作業は慎重に行ってください。
マルチクラスタゲートウェイが不要になった場合は、マルチクラスタゲートウェイを削除してから、マルチクラスタゲートウェイ機能を無効にして、リソースの浪費を回避できます。
コンソールの使用
ACK Oneコンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。
[マルチクラスタゲートウェイ] ページの上部で、[ゲートウェイの選択] ドロップダウンリストから管理するマルチクラスタゲートウェイを選択し、右上隅の [削除] をクリックします。
表示されるダイアログボックスで、削除するマルチクラスターゲートウェイの名前を入力し、[削除] をクリックします。
ACK One Fleetインスタンス内のすべてのマルチクラスターゲートウェイが削除されていることを確認し、ページの右上隅にある [無効化] をクリックします。
表示されたメッセージボックスで、[OK] をクリックします。
CLIの使用
次のコマンドを実行して、マルチクラスタゲートウェイを削除します。
kubectl delete mseingressconfig ackone-gateway
次のコマンドを実行して、マルチクラスタゲートウェイ機能を無効にします。
aliyun adcp UpdateHubClusterFeature --ClusterId <YOUR_FLEET_CLUSTERID> --GatewayEnabled false