当发现k8s中kubelet无法启动的时候,整个集群也出现问题,可以通过kubeadm去排查集群证书是否过期,本集群是etcd集群证书过期,采取了官方更新证书的方式去更新集群的证书(有效期为一年),后续会出教程如何更新集群证书为永久
1、检查集群证书是否过期
kubeadm certs check-expiration
2、 更新集群中所有的证书
并检查证书的有效期,以及更新集群的证书。效果可以见图二
#更新所有证书
kubeadm certs renew all
#检查集群证书信息
kubeadm certs check-expiration
#更新集群的证书,这一步只是会更新证书,但是不会去更新当前集群中kubelet.conf中的证书
kubeadm alpha certs renew all
3、手动更新当前集群证书
将admin.conf中base64编码的值复制到当前集群中master的kubelet.conf
vim /etc/kubernetes/admin.conf
vim /etc/kubernetes/kubelet.conf
最后将将nodes节点上的/etc/kubernetes/kubelet.conf 替换成master节点上的 kubelet.conf
4、重启docker和kubelet服务
systemctl restart docker.service && systemctl restart kubelet.service
如出现以下错误
执行以下命令,原因为当前用户变量未生效
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config