設定檔適用性:等級 2
啟用 kubelet 用戶端憑證輪替。
--rotate-certificates
設定會使 kubelet 通過創建新的 CSR 來輪換其用戶端憑證,當其現有憑證過期時。這種自動定期輪換確保不會因憑證過期而導致停機,從而解決 CIA(機密性、完整性和可用性)安全三元組中的可用性問題。此建議僅適用於您讓 kubelet 從 API 伺服器獲取其憑證的情況。如果您的 kubelet 憑證來自外部授權機構/工具(例如密碼保險箱),則需要自行實施輪換。此功能還需要啟用
RotateKubeletClientCertificate
功能閘。![]() |
注意請參閱 Azure AKS 文件以獲取預設值。
|
影響
停用憑證輪換可能會導致過期的 Kubelet 憑證中斷與 API 伺服器的通信,可能引發節點或 Pod 問題。這可能需要手動干預,並且在生產環境中不可持續。
稽核
-
SSH到每個節點並執行以下命令以查找Kubelet進程:
ps -ef | grep kubelet
-
如果輸出包含
--RotateCertificate
可執行參數,請確認其設置為true
。 -
如果上述命令的輸出不包含
--RotateCertificate
可執行參數,請檢查 Kubelet 配置檔案。上述命令的輸出應返回類似於--config /etc/kubernetes/kubelet/kubelet-config.json
的內容,這是 Kubelet 配置檔案的位置信息。 -
開啟 Kubelet 配置檔:
cat /etc/kubernetes/kubelet/kubelet-config.json
-
確認
RotateCertificate
參數不存在,或設為true
。
矯正性處理
Remediation Method 1:
如果修改 Kubelet 配置檔案,請編輯
/etc/kubernetes/kubelet/kubelet-config.json
並將以下參數設置為 true
:"rotateCertificates": true
確保 kubelet 服務檔案
/etc/systemd/system/kubelet.service.d/10-kubelet-args.conf
沒有將 --RotateCertificate
可執行參數設為 false
,因為這會覆蓋 Kubelet 配置檔案。Remediation Method 2:
如果使用可執行參數,請在每個工作節點上編輯 kubelet 服務檔案
/etc/systemd/system/kubelet.service.d/10-kubelet-args.conf
,並在 KUBELET_ARGS
字串的末尾添加以下參數:--RotateCertificate=true