このトピックでは、ACK One Fleet インスタンスでマルチクラスターゲートウェイを有効または無効にする方法、および関連付けられたクラスターをマルチクラスターゲートウェイに追加する方法について説明します。
課金
マルチクラスターゲートウェイの使用には料金が発生します。マルチクラスターゲートウェイの課金の詳細については、「通常インスタンスの課金概要」をご参照ください。
前提条件
AliyunAdcpManagedMseRolePolicy ポリシーが AliyunAdcpManagedMseRole Resource Access Management (RAM) ロールにアタッチされている。次のコードブロックは、AliyunAdcpManagedMseRolePolicy のポリシードキュメントを示しています。
フリート管理機能が有効になっている。また、ACK One コンソールから Fleet インスタンスの kubeconfig ファイルを取得し、kubectl クライアントが Fleet インスタンスに接続されている。
関連付けられたクラスターが追加されている。関連付けられたクラスターと ACK One Fleet インスタンスは、同じ VPC にデプロイされている。
(オプション) 最新バージョンのクラウドアシスタント CLI がインストールされ、設定されている。
マルチクラスターゲートウェイ機能の有効化
コンソール
ACK One コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
[マルチクラスターゲートウェイ] ページで、[マルチクラスターゲートウェイの作成] ドロップダウンリストをクリックし、[MSE マルチクラスターゲートウェイの有効化] をクリックします。表示されるダイアログボックスで、[OK] をクリックします。
コマンドライン
クラウドアシスタント CLI が最新であることを確認し、次のコマンドを実行してマルチクラスターゲートウェイ機能を有効にします。
<YOUR_FLEET_CLUSTERID>を Fleet インスタンスの 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 コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
[マルチクラスターゲートウェイ] ページの右上隅にある [マルチクラスターゲートウェイの作成] ドロップダウンリストをクリックし、[MSE マルチクラスターゲートウェイ] をクリックします。
表示されるパネルで、必要に応じてマルチクラスターゲートウェイの作成に使用する YAML ファイルを編集し、[作成] をクリックします。
コマンドライン
ACK One Fleet インスタンスの vSwitch ID を取得して記録します。
次のコマンドを実行して vSwitch ID をクエリします。
aliyun adcp DescribeHubClusterDetails --ClusterId <YOUR_FLEET_CLUSTERID>出力の
VSwitchesフィールドにある vSwitch ID を記録します。
mseingressconfig.yaml という名前のファイルを作成し、次の内容をファイルに追加します。
${vsw-id1}を記録した vSwitch ID に置き換えます。ゲートウェイ構成ファイルにアノテーションを追加して、ゲートウェイに追加する関連クラスターを指定できます。apiVersion: mse.alibabacloud.com/v1alpha1 kind: MseIngressConfig metadata: name: ackone-gateway # 関連付けられたクラスターを MSE ゲートウェイに接続します。 #annotations: # mse.alibabacloud.com/remote-clusters: ${cluster1},${cluster2} spec: common: instance: replicas: 3 spec: 2c4g network: # パブリック向け SLB とプライベート向け SLB の両方を設定できます。SLB インスタンスが指定されていない場合、デフォルトでパブリック向け SLB が使用されます。 #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出力は、ゲートウェイが Listening 状態であることを示します。これは、クラウドネイティブゲートウェイが作成され、実行中であることを意味します。ゲートウェイは、IngressClass が
mseである Ingress をリッスンします。MseIngressConfig から作成されたゲートウェイのステータスは、Pending、Running、Listening の順に変化します。状態の説明:
Pending: クラウドネイティブゲートウェイが作成中です。このプロセスには約 3 分かかる場合があります。
Running: クラウドネイティブゲートウェイが作成され、実行中です。
Listening: クラウドネイティブゲートウェイは実行中で、Ingress をリッスンしています。
Failed: クラウドネイティブゲートウェイが異常な状態です。Status フィールドのメッセージを確認して原因を特定できます。
関連付けられたクラスターの追加または削除
コンソール
ACK One コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
[マルチクラスターゲートウェイ] ページの上部で、ドロップダウンリストから管理するマルチクラスターゲートウェイを選択し、右上隅にある [編集] をクリックします。
表示されるパネルで、YAML コンテンツを編集します。
annotationsパラメーターのクラスター ID を変更し、[更新] をクリックします。サンプルコード:
annotations: mse.alibabacloud.com/remote-clusters: ${cluster1-id},${cluster2-id}${cluster1-id}と${cluster2-id}は、関連付けられたクラスターの ID です。複数のクラスター ID はコンマ (,) で区切ります。クラスター ID を変更して、関連付けられたクラスターを追加または削除できます。マルチクラスターゲートウェイの作成時にクラスターを関連付けなかった場合、YAML コンテンツには
annotationsパラメーターが含まれません。したがって、関連付けられたクラスターを追加するには、前の例を YAML コンテンツのmetadataオブジェクトに追加してから、クラスター ID を追加または変更する必要があります。
コマンドライン
ACK One Fleet インスタンスの mseingressconfig オブジェクトで対応するアノテーションを変更して、関連付けられたクラスターを追加または削除できます。
${cluster1-id}と${cluster2-id}を関連付けられたクラスターの ID に置き換えます。複数のクラスター ID はコンマ (,) で区切ります。annotations: mse.alibabacloud.com/remote-clusters: ${cluster1-id},${cluster2-id}マルチクラスターゲートウェイの作成時にクラスターを関連付けなかった場合、YAML コンテンツには
annotationsパラメーターが含まれません。したがって、関連付けられたクラスターを追加するには、前の例を YAML コンテンツのmetadataオブジェクトに追加してから、クラスター 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 コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
[マルチクラスターゲートウェイ] ページで、[ゲートウェイタイプ] ドロップダウンリストから [MSE] を選択し、[ゲートウェイインスタンスの選択] ドロップダウンリストから削除するマルチクラスターゲートウェイを選択して、右上隅にある [削除] をクリックします。
表示されるダイアログボックスで、削除するマルチクラスターゲートウェイの名前を入力し、[削除] をクリックします。
ACK One Fleet インスタンス内のすべてのマルチクラスターゲートウェイが削除されたことを確認し、ページの右上隅にある [MSE ゲートウェイの無効化] をクリックします。表示されるメッセージで、[OK] をクリックします。
コマンドライン
次のコマンドを実行して、マルチクラスターゲートウェイを削除します。
kubectl delete mseingressconfig ackone-gateway次のコマンドを実行して、マルチクラスターゲートウェイ機能を無効にします。
aliyun adcp UpdateHubClusterFeature --ClusterId <YOUR_FLEET_CLUSTERID> --GatewayEnabled false