kubeadm证书过期问题解决
kubeadm證書(shū)過(guò)期問(wèn)題解決
有用過(guò)kubeadm搭建過(guò)k8s集群的,應(yīng)該都知道默認(rèn)證書(shū)為一年,一年過(guò)期后,會(huì)導(dǎo)致kubelet服務(wù)啟動(dòng)不了。
我公司的kubeadm版本是:v1.10.1,據(jù)說(shuō)是2018年運(yùn)維搭的:?jiǎn)喂?jié)點(diǎn)master,兩個(gè)工作節(jié)點(diǎn),共3臺(tái)機(jī)器。
查看主節(jié)點(diǎn)master日志如下:
1、查看kubeadm的過(guò)期時(shí)間
(1)cd /etc/kubernetes/pki (2)for i in $(ls *.crt); do echo "===== $i ====="; openssl x509 -in $i -text -noout | grep -A 3 'Validity' ; done
2、證書(shū)過(guò)期解決方法:
查了好久,這個(gè)版本又太舊,而且我又不敢隨意升級(jí)版本,因?yàn)閖enkins,harbor,都在上面,怕升了丟了數(shù)據(jù)。
終于找到解決方法,參考:https://github.com/yuyicai/update-kube-cert
1 git clone https://github.com/yuyicai/update-kube-cert.git 2 cd update-kubeadm-cert 3 chmod 755 update-kubeadm-cert.sh
[root@master1 update-kube-cert]# ./update-kubeadm-cert.sh all
啟動(dòng)kubelet終于可以了。
3、重新查看證書(shū)過(guò)期時(shí)間:2029年才過(guò)期
4、檢查相關(guān)證書(shū)文件是否已更新
(主要是apiserver,ca,front-proxy,和etcd的crt文件更新了)
ll /etc/kubernetes/pki
ll /etc/kubernetes/pki/etcd
5、其他檢查工作
重新查看日志沒(méi)問(wèn)題:/var/log/messages(竟然把所有日志寫(xiě)到這里,服了服了。。。。)
(1)主節(jié)點(diǎn)的apiserver能啟動(dòng)成功
(2)工作節(jié)點(diǎn)重啟docker和kubelet,也沒(méi)有報(bào)錯(cuò)了
一些坑(大家可以忽略,在沒(méi)查到github正確解決方法的時(shí)候踩的,記錄下)
####################### 坑
1、重新初始化會(huì)出事的
kubeadm init --kubernetes-version=v1.10.1 --pod-network-cidr=10.244.0.0/16
運(yùn)行上面命令初始化之前,要保證這些目錄是空的:
/etc/kubernetes/pki/
/etc/kubernetes/pki/etcd
/var/lib/etcd
/etc/kubernetes 下的conf文件不能有
然后不知道為什么會(huì)報(bào)錯(cuò)說(shuō)角色權(quán)限不夠:
k8s.io/kubernetes/pkg/kubelet/kubelet.go:460: Failed to list *v1.Node: Unauthorized
kubectl get pod什么的都沒(méi)有
2、虛擬機(jī)恢復(fù)之前的快照是可以運(yùn)行整個(gè)集群服務(wù)的! ——》臨時(shí)拖延解決方法
我們之前做了一個(gè)先于12月10前的快照,可以把kubeadm相關(guān)組件服務(wù)都啟動(dòng)起來(lái),只要你不要同步網(wǎng)絡(luò)時(shí)間,它還是以打快照時(shí)間為服務(wù)器時(shí)間,且是參照2020年12月10日作為過(guò)期時(shí)間的。當(dāng)時(shí)以為找不到解決方法,只能這樣先湊合用著先。(這版本太舊也是麻煩 = =)
總結(jié)
以上是生活随笔為你收集整理的kubeadm证书过期问题解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php与java的关系_PHP基本语法以
- 下一篇: java代码杨辉三角_用java实现杨辉