設定檔適用性:等級 1 - 主節點
啟用基於憑證的 kubelet 驗證。
預設情況下,apiserver 不會對 kubelet 的 HTTPS 端點進行驗證。來自 apiserver 的請求將被匿名處理。您應該設置基於憑證的 kubelet
驗證,以確保 apiserver 在提交請求時對 kubelet 進行驗證。
注意預設情況下,基於憑證的 kubelet 驗證未設置。
|
影響
您需要在 apiserver 和 kubelets 上配置 TLS。
稽核
在控制平面節點上執行以下命令:
ps -ef | grep kube-apiserver
確認
--kubelet-client-certificate
和 --kubelet-client-key
參數是否存在並且設置正確。替代稽核方法
kubectl get pod -nkube-system -lcomponent=kube-apiserver -o=jsonpath='{range .items[]}{.spec.containers[].command} {"\n"}{end}' | grep '--kubelet-client-certificate' | grep -i false
如果退出代碼為1,則控制項不存在/失敗。
補救措施
按照 Kubernetes 文件設定 apiserver 和 kubelets 之間的 TLS 連接。然後,在控制平面節點上編輯 API 伺服器 pod 規範文件
/etc/kubernetes/manifests/kube-apiserver.yaml
,並設置 kubelet 用戶端憑證和密鑰參數如下。--kubelet-client-certificate=<path/to/client-certificate-file> --kubelet-client-key=<path/to/client-key-file>