為 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 的連線,以使用新的憑證重新連線。