Kubernetes證書到期導(dǎo)致解決方法
由于使用kubeadm 初始化 k8s集群,默認(rèn)簽發(fā)的CA證書是1年有效期,到期之后請求apiserver導(dǎo)致報(bào)錯(cuò)
首先使用openssl命令查詢相關(guān)證書是否到期
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep Not
[root@master ~]# openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -text |grep Not
具體解決方法
- 備份Kubernetes配置文件
mkdir -p /root/`date +%F`;cp –ar /etc/kubernetes /root/`date +%F`
- 由于k8s版本1.15.0版本之后,重新簽發(fā)證書則不需要訪問k8s.io網(wǎng)絡(luò),默認(rèn)簽發(fā)是1年,通過修改kubadm 源碼編譯默認(rèn)添加100年,證書簽證,使用CA證書只有10年。
-
下載kubeadm地址連接
http://www.zhao13869.com/kubeadm.tgz
見附件 kubeadm.tgz文件
先上傳到服務(wù)器中,然后解壓
-
tar zxf kubeadm.tgz
- 執(zhí)行證書替換操作,本地執(zhí)行剛上傳解壓之后的kubeadm二進(jìn)制文件
./kubeadm alpha certs renew all
- 重啟Manster 和Node節(jié)點(diǎn)上的kubelet,并替換配置文件
systemctl restart kubelet
mv ~/.kube/config ~/.kube/config_`date +%F`
cp /etc/kubernetes/admin.conf ~/.kube/config
- 然后使用openssl命令查詢相關(guān)證書是時(shí)長是否已經(jīng)修改
[root@master ~]# openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep Not
Not Before: May 25 06:57:29 2019 GMT
Not After : Jul 14 02:51:55 2119 GMT
[root@master ~]# openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -text |grep Not
Not Before: May 25 06:57:29 2019 GMT
Not After : May 22 06:57:29 2029 GMT
[root@master ~]# openssl x509 -in /etc/kubernetes/pki/etcd/ca.crt -noout -text |grep Not
Not Before: May 25 06:57:33 2019 GMT
Not After : May 22 06:57:33 2029 GMT
- 查詢Pod是否正常,能查詢出數(shù)據(jù)說明證書簽發(fā)處理完成
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
myapp-7877647684-4l6gt 1/1 Running 2 37d
myapp2-79f74b4cd8-vdk7v 1/1 Running 2 37d