本文介紹控制台訪問叢集異常問題的問題現象、問題原因和解決方案,例如當前叢集API Server請求異常、訪問容器組日誌時報錯API Server請求異常、當前帳號未被授予該操作所需的叢集RBAC許可權等。
當前叢集API Server請求異常ErrorQueryClusterNamespace或APIServer.500
問題現象
當您在控制台訪問叢集資源時,出現報錯“當前叢集APIServer請求異常”,錯誤碼:ErrorQueryClusterNamespace或APIServer.500。在叢集管理主控台彈出錯誤對話方塊,提示當前叢集APIServer請求異常,錯誤碼為 ErrorQueryClusterNamespace,錯誤詳情:failed to query access namespace for user,請求地址為 https://192.168.xxx:10885/api/v1/namespaces?limit=300,報錯為 context deadline exceeded (Client.Timeout exceeded while awaiting headers)。
問題原因
由API Server負載平衡配置或者狀態異常導致Container Service管控與叢集API Server之間串連失敗。
解決方案
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇叢集資訊。
-
單擊基本資料頁簽,然後單擊API server 負載平衡(SLB)對應的執行個體ID,跳轉至負載平衡管理主控台。
-
如果介面提示負載平衡ID不存在,則表明API Server的Server Load Balancer執行個體已被刪除或釋放,叢集不可恢複。請參見建立ACK託管叢集重新建立叢集。
-
如有,繼續執行後續操作。
-
-
查看該Server Load Balancer執行個體的狀態是否為執行中。
-
如果為否,檢查執行個體是否處於欠費或到期狀態。如是,請先完成續約,然後重新啟用執行個體。關於負載平衡的欠費說明,請參見欠費說明。
-
如果是,繼續執行後續操作。
-
-
單擊監聽,查看該Server Load Balancer執行個體的監聽,確認前端和後端是否均存在TCP:6443的監聽,且運行狀態是否為執行中。
-
如果為否,則表明API Server的負載平衡監聽被修改。
-
若監聽存在,但處於停止狀態,請選擇該項監聽,然後單擊啟動。
-
若監聽不存在,請參見如下操作。
ACK專有叢集:請確保將叢集Master節點都已添加至預設伺服器組,然後建立前端、後端均為TCP:6443的監聽,監聽後端設定為預設伺服器組,並啟用該監聽。添加監聽的具體操作,請參見添加TCP監聽。
-
-
如果是,繼續執行後續操作。
-
-
查看上述監聽的健全狀態檢查狀態是否為正常。
-
如果否,則表明API Server的負載平衡後端異常。
ACK專有叢集:請參見如下內容排查。
-
在Container Service管理主控台的,逐一檢查Master執行個體的節點狀態:單擊Master節點對應的ECS執行個體ID,跳轉至ECS管理主控台,檢執行個體是否處於運行中狀態。
-
在ECS管理主控台逐一遠程登入Master節點,查看API Server容器是否正常運行。
-
登入Master節點,請參見選擇ECS遠端連線方式。
-
通過以下方式檢查API Server容器的運行狀態。
-
Docker運行時:執行
docker ps | grep kube-apiserver命令,根據命令的輸出,使用docker inspect命令檢查容器狀態。 -
containerd運行時:執行
crictl ps | grep kube-apiserver命令,根據命令的輸出,使用crictl inspect命令檢查容器狀態。
-
-
-
-
如果是,繼續執行後續操作。
-
-
查看上述監聽是否啟用了存取控制。若啟用了存取控制,則表明API Server的負載平衡監聽存取控制白名單未正確配置。需在存取控制策略中將位址區段
100.104.0.0/16添加到白名單,該位址區段為ACK管控內部訪問API Server的請求來源位址區段。
訪問容器組日誌時報錯API Server請求異常
當前帳號未被授予該操作所需的叢集RBAC許可權ForbiddenQueryClusterNamespace或APISERVER.403
問題現象
當您存取控制台時,出現報錯“當前帳號未被授予該操作所需的叢集RBAC許可權”,錯誤碼:ForbiddenQueryClusterNamespace或APISERVER.403。在叢集管理主控台執行命名空間查詢時,彈出錯誤對話方塊,提示"當前帳號未被授予該操作所需的叢集RBAC許可權,請聯絡主帳號或許可權管理員授權"。英文錯誤資訊為 Forbidden query namespaces,錯誤碼為 ForbiddenQueryClusterNamespace。
問題原因
您使用的帳號未被授予當前操作所需的叢集RBAC許可權。
解決方案
-
使用阿里雲帳號或者具有管理員權限的帳號登入Container Service管理主控台,在左側導覽列中選擇授權管理。
-
在子帳號頁簽,尋找出現報錯的使用者名稱,單擊使用者名稱右側的系統管理權限。
-
單擊添加許可權,選擇對應叢集、命名空間和許可權管理,單擊提交授權。
當前帳號未被授予該操作所需的RAM許可權StatusForbidden
問題現象
當您存取控制台時,出現報錯“當前帳號未被授予該操作所需的RAM許可權”,錯誤碼:StatusForbidden。在Container Service管理主控台操作時,彈出錯誤對話方塊,提示"當前帳號未被授予該操作所需的RAM許可權,請聯絡主帳號或許可權管理員授權"。錯誤資訊為 RAM policy Forbidden for action cs:DescribeKubernetesVersionMetadata,錯誤碼為 StatusForbidden。
問題原因
您使用的帳號未被授予當前操作所需的RAM許可權。
解決方案
-
使用阿里雲帳號或者具有RAM許可權的帳號登入Resource Access Management控制台。
-
根據錯誤提示頁面的CS資訊為您的帳號添加相應的授權,例如cs:DescribeKubernetesVersionMetadata。詳細操作,請參見使用RAM授予叢集及雲資源存取權限。