本文介紹如何在ACK One Fleet執行個體中開啟和關閉多叢集網關,以及如何將關聯集群添加至多叢集網關。
計費說明
使用多叢集網關會產生一定的費用,關於多叢集網關的計費資訊,請參見普通執行個體計費概述。
前提條件
已完成RAM使用者AliyunAdcpManagedMseRole授權。關於角色AliyunAdcpManagedMseRole的策略AliyunAdcpManagedMseRolePolicy詳情如下。
已開啟艦隊管理功能,並從ACK One控制台擷取Fleet執行個體的KubeConfig,通過kubectl串連至Fleet執行個體。
已添加關聯集群,且關聯集群與ACK One Fleet執行個體處於同一VPC。
開啟多叢集網關
通過控制台開啟
登入ACK One控制台,在左側導覽列選擇 。
在多叢集網關頁面單擊開啟多叢集網關,然後在彈出的對話方塊中單擊確定。
通過命令列開啟
確認阿里雲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控制台,在左側導覽列選擇 。
在多叢集網關頁面右上方單擊建立網關。
在彈出的面板中,根據實際情況修改建立多叢集網關的YAML檔案,然後單擊建立。
通過命令列建立
擷取ACK One Fleet執行個體的虛擬交換器ID並記錄。
執行以下命令,擷取交換器執行個體ID。
aliyun adcp DescribeHubClusterDetails --ClusterId <your_fleet_clusterid>
從預期輸出的
VSwitches
中複製一個交換器執行個體ID。
使用以下內容,建立mseingressconfig.yaml檔案。
替換以下
${vsw-id1}
為您上一步擷取的交換器ID。您也可以在建立網關時,通過添加Annotation同步指定待添加到多叢集網關的關聯集群。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,可都配置,如果2個欄位都不配置則預設使用公網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欄位中的Message來進一步明確原因。
在多叢集網關中添加或刪除關聯集群
通過控制台添加或刪除
登入ACK One控制台,在左側導覽列選擇 。
在多叢集網關頁面上方的下拉框中選擇要修改的目標多叢集網關,然後在頁面右上方單擊編輯。
在彈出的面板中修改MseIngresConfig.yaml檔案,修改
annotations
參數中的叢集ID,然後單擊更新。樣本如下:
annotations: mse.alibabacloud.com/remote-clusters: ${cluster1-id},${cluster2-id}
${cluster1-id}
,${cluster2-id}
為添加的關聯集群的ID,多個關聯集群以英文半形逗號(,)間隔,您可以通過修改叢集ID來添加或刪除關聯的叢集。若建立多叢集網關時未添加關聯集群,則MseIngresConfig.yaml檔案中沒有
annotations
參數,添加關聯集群時,您需要將以上樣本添加到MseIngresConfig.yaml檔案的metadata
對象中,再修改叢集ID。
通過命令列方式添加或刪除
在ACK One Fleet執行個體中,通過mseingressconfig對象的Annotation控制多叢集網關中添加或刪除關聯集群。替換以下
${cluster1-id}
、${cluster2-id}
為您待添加的關聯集群的ID,添加多個關聯集群時,中間以英文半形逗號(,)間隔。annotations: mse.alibabacloud.com/remote-clusters: ${cluster1-id},${cluster2-id}
執行以下命令,查看關聯集群是否已成功添加至多叢集網關。
kubectl get mseingressconfig ackone-gateway -ojsonpath="{.status.remoteClusters}"
預期輸出:
[{"clusterId":"c7fb82****"},{"clusterId":"cd3007****"}]
預期輸出中已包含指定的ClusterID,並且無Failed資訊,表明關聯集群已成功添加至多叢集網關。
執行以下命令,查看當前已添加到多叢集網關的關聯集群。
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執行個體下的所有多叢集網關都已刪除,然後在頁面右上方單擊關閉功能。
在彈出的提示框中單擊確定。
通過命令列停用
執行以下命令,刪除多叢集網關。
kubectl delete mseingressconfig ackone-gateway
執行以下命令,關閉多叢集網關功能。
aliyun adcp UpdateHubClusterFeature --ClusterId <your_fleet_clusterid> --GatewayEnabled false