kubeadm安装的k8s集群证书有效期过期解决方案(v1.13.0之后版本)
修改机器时间模拟证书过期,同样如果想生成的证书有效期5年可以设置当前时间为未来5的时间
(date -s "2025-12-30 12:00" )
1.备份master节点上的/etc/kubernetes
cp -r /etc/kubernetes /etc/kubernetes.old
2.删除过期证书文件(master节点均需要)
rm -rf /etc/kubernetes/ssl/apiserver*
rm -rf /etc/kubernetes/ssl/front-proxy*
3.重新生成证书
kubeadm init phase certs all --config /etc/kubernetes/kubeadm-config.yaml
4.拷贝证书到其他master节点
scp /etc/kubernetes/ssl/apiserver* /etc/kubernetes/ssl/front-proxy* 192.168.56.105:/etc/kubernetes/ssl/
5.删除/etc/kubernetes 下的所有conf 文件
rm -rf /etc/kubernetes/*.conf
6.生成新的配置文件
kubeadm init phase kubeconfig all --config /etc/kubernetes/kubeadm-config.yaml
7.备份 ~/.kube/config
cp ~/.kube/config ~/.kube/config.old
8.替换~/.kube/config
cp /etc/kubernetes/admin.conf ~/.kube/config
9. 备份 /var/lib/kubelet/pki
mv /var/lib/kubelet/pki /var/lib/kubelet/pki.old
10.重启服务
docker ps |grep kube-apiserver|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
docker ps |grep kube-controller-manager|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
docker ps |grep kube-scheduler|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
11.systemctl restart kubelet
(5 -11 所有的master 均需做)
如果工作节点的kubelet 证书过期 需要做(9 和 11)
在master 节点生成 node 节点的kubelet.conf 文件 至/tmp/下
kubeadm init phase kubeconfig kubelet --node-name <节点名称> --kubeconfig-dir /tmp/ --apiserver-advertise-address <集群VIP>
拷贝配置到node 节点的 /etc/kubernetes
scp /tmp/kubelet.conf node_ip:/etc/kubernetes/
systemctl restart kubelet