證書輪替後 kubelet 證書管理器失敗

證書輪替後 kubelet 證書管理器失敗

今天,我們實驗室的 k8s 叢集停止允許在叢集上進行工作。當我挖掘時,是因為證書過期了。

我重新產生了憑證和配置,但是當我重新啟動 kubelet 時,我們仍然可以connection refused存取 apiserver。 apiserver 正在運行,但連接埠 6443 未開啟。偵錯日誌時,輸出中出現以下錯誤(可能是轉移注意力,但不確定):

Current certificate CN (system:node:lab-02) does not match requested CN (system:node:control-plane-xm2c9)

這是一個kubeadm創建好的叢集。我曾經kubeadm重新產生所有憑證(CA 除外)。使用了以下命令:

# kubeadm init phase certs apiserver --apiserver-cert-extra-sans control-plane-xm2c9 --apiserver-advertise-address 192.168.2.78
# kubeadm init phase certs apiserver-etcd-client
# kubeadm init phase certs apiserver-kubelet-client

我使用以下命令創建了配置:

# kubeadm init phase kubeconfig admin --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig kubelet  --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig controller-manager --apiserver-advertise-address 192.168.2.78
# kubeadm init phase kubeconfig scheduler --apiserver-advertise-address 192.168.2.78

我仍在篩選日誌。我認為這是我的問題的根源,但我不知道如何解決它。任何幫助都會很棒! TIA

答案1

如果我沒記錯的話,問題是證書上顯示上述命令沒有更新,但是必要的。這是sa證書。幸運的是,在我開始這方面的任何工作之前,我備份了所有證書,/var/tmp並且sa證書在那裡並且仍然有效。當我將sa憑證複製回憑證目錄並重新啟動kubelet時,一切又恢復正常了。

相關內容