Kubernetes 為kubelet配置證書輪換

2022-06-17 10:32 更新

為 kubelet 配置證書輪換

本文展示如何在 kubelet 中啟用并配置證書輪換。

特性狀態(tài): Kubernetes v1.19 [stable]

在開始之前

  • 要求 Kubernetes 1.8.0 或更高的版本

概述

Kubelet 使用證書進行 Kubernetes API 的認證。 默認情況下,這些證書的簽發(fā)期限為一年,所以不需要太頻繁地進行更新。

Kubernetes 包含特性 kubelet 證書輪換, 在當(dāng)前證書即將過期時, 將自動生成新的秘鑰,并從 Kubernetes API 申請新的證書。 一旦新的證書可用,它將被用于與 Kubernetes API 間的連接認證。

啟用客戶端證書輪換

?kubelet ?進程接收 ?--rotate-certificates? 參數(shù),該參數(shù)決定 kubelet 在當(dāng)前使用的 證書即將到期時,是否會自動申請新的證書。

?kube-controller-manager? 進程接收 ?--cluster-signing-duration? 參數(shù) (在 1.19 版本之前為 ?--experimental-cluster-signing-duration?),用來 控制簽發(fā)證書的有效期限。

理解證書輪換配置

當(dāng) kubelet 啟動時,如被配置為自舉(使用?--bootstrap-kubeconfig? 參數(shù)),kubelet 會使用其初始證書連接到 Kubernetes API ,并發(fā)送證書簽名的請求。 可以通過以下方式查看證書簽名請求的狀態(tài):

kubectl get csr

最初,來自節(jié)點上 kubelet 的證書簽名請求處于 ?Pending ?狀態(tài)。 如果證書簽名請求滿足特定條件, 控制器管理器會自動批準,此時請求會處于 ?Approved ?狀態(tài)。 接下來,控制器管理器會簽署證書, 證書的有效期限由 ?--cluster-signing-duration? 參數(shù)指定,簽署的證書會被附加到證書簽名請求中。

Kubelet 會從 Kubernetes API 取回簽署的證書,并將其寫入磁盤,存儲位置通過 ?--cert-dir? 參數(shù)指定。 然后 kubelet 會使用新的證書連接到 Kubernetes API。

當(dāng)簽署的證書即將到期時,kubelet 會使用 Kubernetes API,自動發(fā)起新的證書簽名請求。 該請求會發(fā)生在證書的有效時間剩下 30% 到 10% 之間的任意時間點。 同樣地,控制器管理器會自動批準證書請求,并將簽署的證書附加到證書簽名請求中。 Kubelet 會從 Kubernetes API 取回簽署的證書,并將其寫入磁盤。 然后它會更新與 Kubernetes API 的連接,使用新的證書重新連接到 Kubernetes API。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號