K8S证书过期处理方法Unable to connect to the server: x509: certificate has expired or is not yet valid

今天突然发现K8S集群无法使用了。报如下错误

 kubectl get nodes

Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2023-09-12T11:37:51+08:00 is after 2023-09-05T10:56:05Z

从报错信息上可以看出是证书过期导致。

查看证书信息

kubeadm certs check-expiration

从上图很明显看出确实是过期了。

解决方法:

备份相关文件

cp -r /etc/kubernetes /etc/kubernetes_202309121230
cp -r /root/.kube/config /root/.kube/config_202309121230

更新证书

kubeadm certs renew all

再次查看证书发现已成功更新

kubeadm certs check-expiration

复制config文件

cp  /etc/kubernetes/admin.conf /root/.kube/config

再次查看可以成功

kubectl get node

更新完之后需要重启所有服务,否则会有其他问题。

docker ps |grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler|k8s_etcd_etcd' | awk -F ' ' '{print $1}' |xargs docker restart

重启完服务还是不行的话,重启服务器准好,哈哈!!!

所有node节点需要重启kubelet服务

systemctl restart kubelet

发表评论

后才能评论