Container Service 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許可權。
登入Container Service管理主控台,在左側導覽列選擇授權管理。
單擊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,您可以在資源回收筒中刪除其對應的記錄。刪除後,記錄無法復原。
登入Container Service管理主控台,在左側導覽列選擇授權管理。
單擊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憑證。