Pages - Menu

2023年7月28日 星期五

[k8s]kubeadm重新產生驗證

睡睡念

事情發生在某一天,
突然有個人跑來跟我說,他該怎麼連樓上自建的k8s,
那時在處理其他東西,就說我等等給你。
再來,突然發現我自己連不上去,直接跳錯誤。
unable to connect to server: x509: certificate has expired or is not yet valid


正文

使用openLen連線時,出現錯誤。當下認為應該是金鑰有問題,
但那臺機器應該很久沒動了,當初k8s也不是我架起來的,
頭痛阿。

proxy_server.go:147 Error while proxying request: x509: certificate has expired or is not yet valid

從這篇K8S自建叢集更換證書知道了一件事情

通過kubeadm自建的叢集,初始化後會生成一年的證書,簽發的CA證書有效期默認是10年,簽發的apiserver證書有效期默認是1年

再問一下其他單位的同事,那個環境是不是已經架一年了?
結果出來,差不多一年了,那可以判斷是金鑰過期,但還是必須到機器裡面檢查一下。

用ssh或任意方式連到master主機上,
視權限變更使用者,

我在執行kubeadm的時候,全程使用root的帳號

檢查憑證到期日

kubeadm certs check-expiration

發現真的過期了,重建吧。
參考下面連結發現有點問題,可能是因為版本有更新。
ref. 解決kubernetes證書過期問題

kubeadm certs renew # 這樣有問題,會發生錯誤

kubeadm missing subcommand; “renew” is not meant to be run on its own

查詢官方檔案

kubeadm certs renew all

執行完成後,在檢查一次到期日,是否已經變更。

kubeadm certs check-expiration

但此時還是沒辦法連線,需更新kube config,

這邊使用一般使用者帳號

mv config config.old cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config sudo chmod 644 $HOME/.kube/config

p.s 上面的文章說要重啟kube-apiserver,kube-controller,kube-scheduler,etcd 這四個容器,但我沒重啓,因為我這台master主機根本沒找到docker,這部分我也很疑惑。
但一切都正常了,就先這樣吧。


結尾

如果要從其他地方連到k8s master,檔案就在/etc/kubernetes/admin.conf裡面了。
不過官方強烈建議,不要將admin.conf與其他人共享。
最好是另外開一個使用者,
這部分我研究下,改天在寫篇文章了吧

相關資訊:

沒有留言:

張貼留言