證書輪換
檢查證書過期時間
更新過期時間
根據集群的不同,可以選擇如下幾種方法來更新證書過期時間(任選一種即可)。
方法1: 使用 kubeadm 升級集群自動輪換證書
方法2: 使用 kubeadm 手動生成並替換證書
方法3: 非 kubeadm 集群
非 kubeadm 集群請參考 配置 CA 並創建 TLS 證書 重新生成證書,並重啓各個 Kubernetes 服務。
kubelet 證書自動輪換
Kubelet 從 v1.8.0 開始支持證書輪換,當證書過期時,可以自動生成新的密鑰,並從 Kubernetes API 申請新的證書。
證書輪換的開啓方法如下:
撤銷證書
Kubernetes 目前還不支持通過 Certificate Rovocation List (CRL) 來撤銷證書。所以,目前撤銷證書的唯一方法就是使用新的 CA 重新生成所有證書,然後再重啓所有服務。
爲了避免這個問題,推薦爲客戶端配置 OIDC 認證,比如可以使用 dex 項目來實現。
注:Etcd 支持 CRL 撤銷證書,具體實現可以參考這裏。
附: 名詞解釋
CA (Certificate Authority):根證書籤發機構,用於簽發證書(即證明證書是合法的)。
CA 擁有私鑰 (ca.key) 和證書 (ca.crt,包含公鑰)。對於自簽名 CA 來說, ca.crt 需要分發給所有客戶端。
ca.crt 會自動掛載到 Pod 中
/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
key (Public key or Private key):即公鑰或者私鑰。
csr (Certificate Signing Request):證書籤名請求,用於向權威證書頒發機構獲得簽名證書的申請,申請中通常包含公鑰(私鑰自己保存)。
crt/cer (Certificate):已簽發的證書,一般是 PEM 格式(也支持 DER 格式)。
參考文檔
Last updated