為 Kubelet 設定憑證輪替

此頁面說明如何為 kubelet 啟用與設定憑證輪替。

功能狀態: Kubernetes v1.19 [穩定]

開始之前

  • 需要 Kubernetes 1.8.0 或更新版本

總覽

kubelet 使用憑證來向 Kubernetes API 進行驗證。預設情況下,這些憑證的有效期限為一年,因此不需要太頻繁地續約。

Kubernetes 包含kubelet 憑證輪替,這將在目前憑證即將到期時自動產生新的金鑰並向 Kubernetes API 請求新的憑證。一旦新的憑證可用,它將用於驗證與 Kubernetes API 的連線。

啟用用戶端憑證輪替

kubelet 程序接受引數 --rotate-certificates,用於控制 kubelet 是否會在目前使用的憑證即將到期時自動請求新的憑證。

kube-controller-manager 程序接受引數 --cluster-signing-duration(1.19 之前的版本為 --experimental-cluster-signing-duration),用於控制憑證的簽發期限。

瞭解憑證輪替組態

當 kubelet 啟動時,如果已設定為啟動引導(使用 --bootstrap-kubeconfig 旗標),它將使用其初始憑證連線到 Kubernetes API 並發出憑證簽署請求。您可以使用以下命令檢視憑證簽署請求的狀態

kubectl get csr

最初,來自節點上 kubelet 的憑證簽署請求的狀態將為 Pending。如果憑證簽署請求符合特定條件,則將由控制器管理員自動核准,然後其狀態將為 Approved。接下來,控制器管理員將簽署憑證,憑證的簽發期限由 --cluster-signing-duration 參數指定,並且簽署的憑證將附加到憑證簽署請求。

kubelet 將從 Kubernetes API 檢索簽署的憑證,並將其寫入磁碟,位置由 --cert-dir 指定。然後 kubelet 將使用新的憑證連線到 Kubernetes API。

隨著簽署憑證的到期日臨近,kubelet 將自動使用 Kubernetes API 發出新的憑證簽署請求。這可能發生在憑證剩餘時間的 30% 到 10% 之間的任何時間點。同樣,控制器管理員將自動核准憑證請求,並將簽署的憑證附加到憑證簽署請求。kubelet 將從 Kubernetes API 檢索新的簽署憑證並將其寫入磁碟。然後它將更新其與 Kubernetes API 的連線,以使用新的憑證重新連線。

上次修改時間:2022 年 4 月 23 日下午 2:32 PST:更新對 kubelet 安全性檔案的參考 (a3ea9f4caf)