問題及修復(fù)
手里有個(gè)實(shí)驗(yàn)環(huán)境部署了一年多,最近重新啟用想做一些測試驗(yàn)證,信心滿滿的準(zhǔn)備先跑下kubectl get pods
來看下環(huán)境是不是正常缔莲,結(jié)果就看到了下面的錯(cuò)誤:
Unable to connect to the server: x509: certificate has expired or is not yet valid.
哈园匹?證書無效?失效盔性?其實(shí)錯(cuò)誤非常明顯了,但是怎么解決卻有點(diǎn)蒙圈腿倚。因?yàn)橐婚_始是用kubeadm安裝的cluster纯出,并不記得有手動(dòng)配置什么證書...
搜了一圈才發(fā)現(xiàn),kubeadm安裝的cluster里用的證書默認(rèn)就是一年敷燎,這個(gè)環(huán)境超過一年了暂筝,證書自然也就過期了。當(dāng)前集群的證書信息可以通過kubeadm certs check-expiration
來查看硬贯,有些老版本需要運(yùn)行kubeadm alpha certs check-expiration
焕襟。更新證書的命令kubeadm也直接提供了,只需要運(yùn)行kubeadm certs renew all
即可饭豹,老版本是kubeadm alpha certs renew all
鸵赖。
當(dāng)然為了保險(xiǎn)起見,也可以先備份下現(xiàn)有的配置文件:cp -p /etc/kubernetes/*.conf $HOME/k8s-old-certs
拄衰。
本地的kubeconfig文件因?yàn)樽C書的更新也會(huì)失效它褪,需要將/etc/kubernetes/admin.conf
拷貝至$HOME/.kube
。如果沒有其他cluster的配置信息翘悉,那么直接拷貝并重命名為config即可茫打。