全部產品
Search
文件中心

Container Service for Kubernetes:通過KubeConfig資源回收筒管理KubeConfig

更新時間:Jun 19, 2024

Container Service Kubernetes 版會為不同的阿里雲帳號、RAM使用者或角色簽髮帶有其身份資訊的KubeConfig憑證用於串連叢集。如果您需要恢複誤清除的KubeConfig,或復原某個歷史版本的KubeConfig,您可以通過KubeConfig資源回收筒功能來實現。

注意事項

  • 您的帳號需為阿里雲帳號(主帳號)或有指定許可權的RAM使用者或角色。

    如使用RAM使用者或角色,請確保您的帳號已有AliyunCSFullAccessAliyunRAMReadOnlyAccess許可權。

  • 僅支援恢複過去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許可權。

  1. 登入Container Service管理主控台,在左側導覽列選擇授權管理

  2. 單擊KubeConfig 管理頁簽,然後單擊頁面右上方的KubeConfig 資源回收筒

    KubeConfig資源回收筒展示30天內已被清除的KubeConfig列表。列表欄位說明如下。

    清單項目

    說明

    使用者資訊

    該KubeConfig對應阿里雲帳號或RAM使用者、角色的名稱及ID。

    叢集資訊

    該KubeConfig對應叢集的名稱以及ID。

    認證資訊

    該KubeConfig的用戶端認證CN(CommonName)。關於CN的更多資訊,請參見參考資料:用戶端認證CN

    RBAC 許可權

    該KubeConfig關聯的RBAC許可權列表。

    回收時間

    該KubeConfig被刪除的時間,即進入資源回收筒的時間。

    清理時間

    該KubeConfig被永久清理的時間。

    資源回收筒僅支援恢複過去30天內被清除的KubeConfig。超過30天的待回收條目會被自動清理且無法找回。

  3. 單擊恢複,恢複目標記錄對應的KubeConfig及其關聯的RBAC許可權。

    您也可以勾選多條記錄,大量復原。大量復原時,請避免KubeConfig衝突。

刪除KubeConfig記錄

如充分評估後無需再使用某個KubeConfig,您可以在資源回收筒中刪除其對應的記錄。刪除後,記錄無法復原。

  1. 登入Container Service管理主控台,在左側導覽列選擇授權管理

  2. 單擊KubeConfig 管理頁簽,然後單擊頁面右上方的KubeConfig 資源回收筒

  3. 確認待刪除的資源回收筒記錄後,單擊刪除,並在刪除前填寫認證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憑證