本文介紹艦隊管理的常見問題。
艦隊管理是否支持多個Fleet實例?
支持多個Fleet實例。ACK One默認情況下提供一個Fleet實例的配額Quota。艦隊管理的Fleet實例通過Quota進行管理控制,如需更多Fleet實例配額,您可以前往阿里云配額中心進行申請。
Fleet實例管理關聯集群對集群間的連通性有什么要求?
Fleet實例所在VPC可以訪問關聯集群的API Server端點。
關聯集群所在VPC可以訪問Fleet實例的API Server端點。
如果Fleet實例與關聯集群屬于不同的VPC,需要使用云企業網CEN(Cloud Enterprise Network)將兩個VPC網絡打通,保證API Server端點可以互相訪問;或者開啟Fleet實例和關聯集群的公網端點,使用公網互相連接。
是否可以使用Kubectl CLI對Fleet實例進行操作?
可以使用Kubectl CLI下發資源進行操作。Fleet實例完全兼容Kubernetes API Server,支持原生Kubernetes資源的下發。您也可以使用Helm打包應用并使用Helm CLI下發應用到Fleet實例。ACK One提供AMC Kubectl Plugin,方便多集群場景下的應用與作業管理。更多信息,請參見AMC命令行幫助。
添加關聯集群操作失敗,報錯詳情:secrets"sec-c58faedb8a7864d3****-public"not find
問題現象
當您在添加關聯集群時,控制臺出現錯誤提示secrets"sec-c58faedb8a7864d3****-public"not find。
問題原因
Fleet實例和關聯集群網絡不通,需要檢查待添加的關聯集群和Fleet實例之間的網絡聯通性。
解決方案
如果Fleet實例與關聯集群屬于不同的VPC,需要使用云企業網CEN(Cloud Enterprise Network)將兩個VPC網絡打通,保證API Server端點可以互相訪問;或者開啟Fleet實例和關聯集群的公網端點,使用公網互相連接。關于CEN更多信息,請參見云企業網。
移除關聯集群失敗,“namespace terminating”問題的處理方法
在移除關聯集群時,由于關聯集群中的某些API Services不可用,會導致關聯集群上艦隊命名空間ack-multiple-clusters、ack-cluster-gateway Terminating無法被徹底刪除,從而影響集群被再次添加關聯。解決方法如下:
執行如下命令獲取對應Namespace的JSON文件。
請將命令中
<YOUR_NAMESPACE>
替換為實際的Namespace名稱。kubectl get namespace <YOUR_NAMESPACE> -o json > <YOUR_NAMESPACE>.json
刪除JSON文件中
spec
下的finalizers
數組。執行以下命令刪除Terminating狀態的Namespace。
請將命令中
<YOUR_NAMESPACE>
替換為實際的Namespace名稱。kubectl replace --raw "/api/v1/namespaces/<YOUR_NAMESPACE>/finalize" -f ./<YOUR_NAMESPACE>.json
執行
kubectl get ns
命令確認Terminating狀態的Namespace已經被刪除。
如何將未正常移除關聯的子集群關聯到艦隊?
如果您不小心刪除了艦隊,或清理了艦隊APIServer的SLB后導致艦隊無法正常使用,此時您可能需要將您未正常移除關聯的子集群添加到新建的艦隊,關聯時會出現報錯,請按照以下步驟操作以確保關聯成功。
登錄ACK One控制臺,在左側導航欄選擇 。
在關聯集群頁面,單擊艦隊名稱右側的展開按鈕,選中需要切換的新艦隊,單擊添加關聯集群。
在彈出的添加關聯集群面板中,選中需要關聯的集群,然后單擊確定。
在關聯集群頁面,選中需要關聯的集群,并單擊移除關聯。
再次單擊添加關聯集群,選中需要關聯的集群,然后單擊確定。