管理多集群網(wǎng)關(guān)
本文介紹如何在ACK One Fleet實(shí)例中開啟和關(guān)閉多集群網(wǎng)關(guān),以及如何將關(guān)聯(lián)集群添加至多集群網(wǎng)關(guān)。
計費(fèi)說明
使用多集群網(wǎng)關(guān)會產(chǎn)生一定的費(fèi)用,關(guān)于多集群網(wǎng)關(guān)的計費(fèi)信息,請參見普通實(shí)例計費(fèi)概述。
前提條件
已完成RAM用戶AliyunAdcpManagedMseRole授權(quán)。關(guān)于角色AliyunAdcpManagedMseRole的策略AliyunAdcpManagedMseRolePolicy詳情如下。
{ "Statement": [ { "Action": [ "mse:AddBlackWhiteList", "mse:AddGateway", "mse:AddServiceSource", "mse:CreateApplication", "mse:DeleteGateway", "mse:DeleteServiceSource", "mse:GetBlackWhiteList", "mse:GetGateway", "mse:GetGatewayDetail", "mse:GetGatewayOption", "mse:ListServiceSource", "mse:ListTagResources", "mse:ModifyLosslessRule", "mse:TagResources", "mse:UntagResources", "mse:UpdateBlackWhiteList", "mse:UpdateGatewayOption", "mse:UpdateServiceSource" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "log:CloseProductDataCollection", "log:OpenProductDataCollection", "log:GetProductDataCollection" ], "Resource": [ "acs:mse:*:*:instance/*", "acs:log:*:*:project/*/logstore/mse_*" ], "Effect": "Allow" }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "ram:ServiceName": [ "audit.log.aliyuncs.com" ] } }, "Effect": "Allow" } ], "Version": "1" }
已開啟艦隊管理功能,并從ACK One控制臺獲取Fleet實(shí)例的KubeConfig,通過kubectl連接至Fleet實(shí)例。
已添加關(guān)聯(lián)集群,且關(guān)聯(lián)集群與ACK One Fleet實(shí)例處于同一VPC。
開啟多集群網(wǎng)關(guān)
通過控制臺開啟
登錄ACK One控制臺,在左側(cè)導(dǎo)航欄選擇 。
在多集群網(wǎng)關(guān)頁面單擊開啟多集群網(wǎng)關(guān),然后在彈出的對話框中單擊確定。
通過命令行開啟
確認(rèn)阿里云CLI為最新版本后,執(zhí)行以下命令開啟多集群網(wǎng)關(guān)。
替換以下
<your_fleet_clusterid>
為您的Fleet實(shí)例ID。aliyun adcp UpdateHubClusterFeature --ClusterId <your_fleet_clusterid> --GatewayEnabled true
執(zhí)行以下命令,查看多集群網(wǎng)關(guān)功能的開啟狀態(tài)。
aliyun adcp DescribeHubClusterDetails --ClusterId <your_fleet_clusterid> |grep -B4 -A1 EnabledMSE`
預(yù)期輸出如下:
Status
為True
表示多集群網(wǎng)關(guān)成功開啟。{ "Message": "", "Reason": "", "Status": "True", "Type": "EnabledMSE" },
創(chuàng)建多集群網(wǎng)關(guān)
通過控制臺創(chuàng)建
登錄ACK One控制臺,在左側(cè)導(dǎo)航欄選擇 。
在多集群網(wǎng)關(guān)頁面右上角單擊創(chuàng)建網(wǎng)關(guān)。
在彈出的面板中,根據(jù)實(shí)際情況修改創(chuàng)建多集群網(wǎng)關(guān)的YAML文件,然后單擊創(chuàng)建。
通過命令行創(chuàng)建
獲取ACK One Fleet實(shí)例的虛擬交換機(jī)ID并記錄。
執(zhí)行以下命令,獲取交換機(jī)實(shí)例ID。
aliyun adcp DescribeHubClusterDetails --ClusterId <your_fleet_clusterid>
從預(yù)期輸出的
VSwitches
中復(fù)制一個交換機(jī)實(shí)例ID。
使用以下內(nèi)容,創(chuàng)建mseingressconfig.yaml文件。
替換以下
${vsw-id1}
為您上一步獲取的交換機(jī)ID。您也可以在創(chuàng)建網(wǎng)關(guān)時,通過添加Annotation同步指定待添加到多集群網(wǎng)關(guān)的關(guān)聯(lián)集群。apiVersion: mse.alibabacloud.com/v1alpha1 kind: MseIngressConfig metadata: name: ackone-gateway # 添加關(guān)聯(lián)集群到MSE網(wǎng)關(guān)。 #annotations: # mse.alibabacloud.com/remote-clusters: ${cluster1},${cluster2} spec: common: instance: replicas: 3 spec: 2c4g network: # 公網(wǎng)SLB和內(nèi)網(wǎng)SLB,可都配置,如果2個字段都不配置則默認(rèn)使用公網(wǎng)SLB。 #publicSLBSpec: slb.s2.small #privateSLBSpec: slb.s2.small vSwitches: - ${vsw-id1} ingress: local: ingressClass: mse name: mse-ingress
執(zhí)行以下命令,在ACK One Fleet實(shí)例中創(chuàng)建一個名為mse-ingress的網(wǎng)關(guān)。
kubectl apply -f mseingressconfig.yaml
執(zhí)行以下命令,驗(yàn)證網(wǎng)關(guān)是否創(chuàng)建成功。
kubectl get mseingressconfig ackone-gateway
預(yù)期輸出:
NAME STATUS AGE ackone-gateway Listening 3m15s
預(yù)期輸出中網(wǎng)關(guān)狀態(tài)為Listening,表明云原生網(wǎng)關(guān)創(chuàng)建成功處于運(yùn)行狀態(tài),并自動監(jiān)聽集群中IngressClass為
mse
的Ingress資源。通過MseIngressConfig創(chuàng)建的多集群網(wǎng)關(guān)會按照Pending、Running、Listening的狀態(tài)依次變化。各狀態(tài)說明如下:
Pending:表明云原生網(wǎng)關(guān)正在創(chuàng)建中,需等待3分鐘左右。
Running:表明云原生網(wǎng)關(guān)創(chuàng)建成功,并處于運(yùn)行狀態(tài)。
Listening:表明云原生網(wǎng)關(guān)處于運(yùn)行狀態(tài),并監(jiān)聽集群中Ingress資源。
Failed:表明云原生網(wǎng)關(guān)處于非法狀態(tài),可以查看Status字段中的Message來進(jìn)一步明確原因。
在多集群網(wǎng)關(guān)中添加或刪除關(guān)聯(lián)集群
通過控制臺添加或刪除
登錄ACK One控制臺,在左側(cè)導(dǎo)航欄選擇 。
在多集群網(wǎng)關(guān)頁面上方的下拉框中選擇要修改的目標(biāo)多集群網(wǎng)關(guān),然后在頁面右上角單擊編輯。
在彈出的面板中修改MseIngresConfig.yaml文件,修改
annotations
參數(shù)中的集群ID,然后單擊更新。示例如下:
annotations: mse.alibabacloud.com/remote-clusters: ${cluster1-id},${cluster2-id}
${cluster1-id}
,${cluster2-id}
為添加的關(guān)聯(lián)集群的ID,多個關(guān)聯(lián)集群以英文半角逗號(,)間隔,您可以通過修改集群ID來添加或刪除關(guān)聯(lián)的集群。若創(chuàng)建多集群網(wǎng)關(guān)時未添加關(guān)聯(lián)集群,則MseIngresConfig.yaml文件中沒有
annotations
參數(shù),添加關(guān)聯(lián)集群時,您需要將以上示例添加到MseIngresConfig.yaml文件的metadata
對象中,再修改集群ID。
通過命令行方式添加或刪除
在ACK One Fleet實(shí)例中,通過mseingressconfig對象的Annotation控制多集群網(wǎng)關(guān)中添加或刪除關(guān)聯(lián)集群。替換以下
${cluster1-id}
、${cluster2-id}
為您待添加的關(guān)聯(lián)集群的ID,添加多個關(guān)聯(lián)集群時,中間以英文半角逗號(,)間隔。annotations: mse.alibabacloud.com/remote-clusters: ${cluster1-id},${cluster2-id}
執(zhí)行以下命令,查看關(guān)聯(lián)集群是否已成功添加至多集群網(wǎng)關(guān)。
kubectl get mseingressconfig ackone-gateway -ojsonpath="{.status.remoteClusters}"
預(yù)期輸出:
[{"clusterId":"c7fb82****"},{"clusterId":"cd3007****"}]
預(yù)期輸出中已包含指定的ClusterID,并且無Failed信息,表明關(guān)聯(lián)集群已成功添加至多集群網(wǎng)關(guān)。
執(zhí)行以下命令,查看當(dāng)前已添加到多集群網(wǎng)關(guān)的關(guān)聯(lián)集群。
kubectl get mseingressconfig ackone-gateway
執(zhí)行以下命令,在已有的基礎(chǔ)上新增或刪除關(guān)聯(lián)集群。
mse.alibabacloud.com/remote-clusters=${cluster1},${cluster2}
表示待添加到多集群網(wǎng)關(guān)的集群列表。kubectl annotate mseingressconfig ackone-gateway mse.alibabacloud.com/remote-clusters=${cluster1},${cluster2} --overwrite=true
停用多集群網(wǎng)關(guān)功能
刪除多集群網(wǎng)關(guān)將會對業(yè)務(wù)產(chǎn)生影響,請謹(jǐn)慎操作。
當(dāng)您確定不再使用多集群網(wǎng)關(guān)時,需要先刪除多集群網(wǎng)關(guān),再關(guān)閉多集群網(wǎng)關(guān)功能,避免產(chǎn)生額外資損。
通過控制臺停用
登錄ACK One控制臺,在左側(cè)導(dǎo)航欄選擇 。
在多集群網(wǎng)關(guān)頁面上方的下拉框中選擇要刪除的目標(biāo)多集群網(wǎng)關(guān),然后在頁面右上角單擊刪除。
在彈出的對話框中輸入待刪除的多集群網(wǎng)關(guān)的名稱,然后單擊刪除。
確認(rèn)ACK One Fleet實(shí)例下的所有多集群網(wǎng)關(guān)都已刪除,然后在頁面右上角單擊關(guān)閉功能。
在彈出的提示框中單擊確定。
通過命令行停用
執(zhí)行以下命令,刪除多集群網(wǎng)關(guān)。
kubectl delete mseingressconfig ackone-gateway
執(zhí)行以下命令,關(guān)閉多集群網(wǎng)關(guān)功能。
aliyun adcp UpdateHubClusterFeature --ClusterId <your_fleet_clusterid> --GatewayEnabled false