容器服務 Kubernetes 版會為不同的阿里云賬號、RAM用戶或角色簽發帶有其身份信息的KubeConfig憑證用于連接集群。如果您需要恢復誤清除的KubeConfig,或回滾某個歷史版本的KubeConfig,您可以通過KubeConfig回收站功能來實現。
注意事項
您的賬號需為阿里云賬號(主賬號)或有指定權限的RAM用戶或角色。
如使用RAM用戶或角色,請確保您的賬號已有AliyunCSFullAccess、AliyunRAMReadOnlyAccess權限。
僅支持恢復過去30天內被清除的KubeConfig。超過30天的清除記錄無法恢復。關于清除Kubeconfig,請參見清除KubeConfig。
在一個ACK集群中,一個阿里云賬號、RAM用戶或RAM角色只能保有一個正在生效的KubeConfig。如果某集群對應的阿里云賬號、RAM用戶或角色賬號下已存在生效中的KubeConfig,則過往的KubeConfig無法恢復。
使用場景
場景一:誤清除某KubeConfig,需恢復該Kubeconfig
因操作失誤,管理員A清除了RAM用戶B在集群Cluster1中的KubeConfig,用戶B隨即發現無法連接Cluster1。此時,用戶B申請管理員A在回收站中重新恢復誤清除的KubeConfig。
場景二:當前KubeConfig不適用,需恢復歷史的KubeConfig
管理員A清除了RAM用戶B在集群Cluster1中v1版本的KubeConfig,RAM用戶B在控制臺重新獲取了v2版本的KubeConfig用于連接集群。但管理員A發現業務系統中仍然有業務應用依賴v1版本的KubeConfig,且v1版本的KubeConfig關聯了許多RBAC權限,故希望恢復v1版本的KubeConfig。
此時,管理員A需要首先清除v2版本的KubeConfig,然后在回收站查詢v1、v2兩個版本的KubeConfig記錄,并選擇恢復v1版本的KubeConfig。
恢復KubeConfig
您可以恢復單個或多個KubeConfig及其關聯的RBAC權限。
登錄容器服務管理控制臺,在左側導航欄選擇授權管理。
單擊KubeConfig 管理頁簽,然后單擊頁面右上角的KubeConfig 回收站。
KubeConfig回收站展示30天內已被清除的KubeConfig列表。列表字段說明如下。
列表項
說明
用戶信息
該KubeConfig對應阿里云賬號或RAM用戶、角色的名稱及ID。
集群信息
該KubeConfig對應集群的名稱以及ID。
證書信息
該KubeConfig的客戶端證書CN(CommonName)。關于CN的更多信息,請參見參考資料:客戶端證書CN。
RBAC 權限
該KubeConfig關聯的RBAC權限列表。
回收時間
該KubeConfig被刪除的時間,即進入回收站的時間。
清理時間
該KubeConfig被永久清理的時間。
回收站僅支持恢復過去30天內被清除的KubeConfig。超過30天的待回收條目會被自動清理且無法找回。
單擊恢復,恢復目標記錄對應的KubeConfig及其關聯的RBAC權限。
您也可以勾選多條記錄,批量恢復。批量恢復時,請避免KubeConfig沖突。
刪除KubeConfig記錄
如充分評估后無需再使用某個KubeConfig,您可以在回收站中刪除其對應的記錄。刪除后,記錄無法回滾。
登錄容器服務管理控制臺,在左側導航欄選擇授權管理。
單擊KubeConfig 管理頁簽,然后單擊頁面右上角的KubeConfig 回收站。
確認待刪除的回收站記錄后,單擊刪除,并在刪除前填寫證書CN完成確認。
參考資料:客戶端證書CN
在KubeConfig中,客戶端證書CN (CommonName) 是訪問Kubernetes集群的客戶端身份信息。不同的KubeConfig對應不同的客戶端身份信息。更多信息,請參見kube-apiserver。
ACK集群中,客戶端證書CN的組成格式為{UserID}-{后綴ID}
。其中,UserID
為KubeConfig對應的RAM用戶或角色ID;后綴ID
為隨機字符串,在每次清除或吊銷KubeConfig后均會自動更新,防止歷史的KubeConfig仍然可以正常訪問集群。
常見問題
同一集群下,為什么同一RAM用戶在回收站存在多條KubeConfig記錄?
由于證書CN的更新,在KubeConfig回收站中,即使是同一集群的同一RAM用戶也會存在多個KubeConfig記錄。
回收站存在多個KubeConfig記錄時,如何識別待恢復的KubeConfig?
您可以查看記錄對應的RBAC權限來選擇待恢復的KubeConfig,也可以根據證書CN來區分KubeConfig記錄,選擇恰當的KubeConfig記錄進行恢復。您可以通過以下命令查看某一份KubeConfig的CN,然后根據證書CN在回收站中查找對應記錄并進行恢復。
openssl x509 -in <(kubectl config view --kubeconfig {kubeconfig 文件名} --raw --minify --output=jsonpath='{.users[0].user.client-certificate-data}'|base64 -d) -noout -subject
為什么有回收站條目的恢復按鈕置灰?
在某一集群中,一個RAM用戶或角色只能擁有一個生效中的KubeConfig。因此,當該RAM用戶或角色在某一集群中已存在生效中的KubeConfig時,歷史的KubeConfig便無法恢復,以避免集群KubeConfig沖突。
如果需要恢復歷史的KubeConfig,請將當前生效的KubeConfig清除,然后再恢復歷史的KubeConfig。關于如何清除KubeConfig,請參見清除KubeConfig。
有哪些情況可能會導致KubeConfig恢復失敗?
操作人員的RBAC權限不足:恢復回收站KubeConfig記錄時,會連帶恢復關聯的RBAC權限。如果操作人員沒有對應集群的RBAC權限,可能會導致KubeConfig恢復失敗。相關授權步驟請參見配置RAM用戶或RAM角色RBAC權限。
集群狀態異常:集群狀態異常時可能無法連接集群,繼而導致KubeConfig恢復失敗。
KubeConfig沖突:在一個ACK集群中,一個RAM用戶或角色只能保有一個正在生效的KubeConfig。如果您在批量恢復KubeConfig記錄時KubeConfig存在沖突,ACK默認恢復最近的一條記錄,其余記錄均會恢復失敗。
相關文檔
當企業內部員工離職或KubeConfig有潛在安全風險時,請及時清理和解除授權。具體操作,請參見清除KubeConfig。
當簽發的KubeConfig疑似泄露時,請吊銷該集群的KubeConfig以生成新的KubeConfig。具體操作,請參見吊銷集群的KubeConfig憑證。