
一直以来,k8s 证书续期就是一个很大的问题
一不小心证书到期以后
kubectl 命令就没法正常使用了
后来我发现 kubekey 这个工具还是比较好用的
直到青云把 kubesphere 闭源了
但是 kubekey 这个工具应该还是可用的
把方法贴出来:
# 查询证书状态
kk certs check-expiration
#证书续期
kk certs renew
当然我在续期之后,发现有个别证书仍然过期
所以我又做了其他的操作
cd /etc/kubernetes
mv kubelet.conf{,-bak}
#重新生成 kubelet 配置
kubeadm init phase kubeconfig kubelet
出现无法验证,无法注册 node 也用这个方法
如 "Unable to register node with API server" err="Unauthorized" node="node1",下面红色部分删掉
root@node1:/var/lib/kubelet/pki# ls -l
total 24
-rw------- 1 root root 2822 Apr 13 23:19 kubelet-client-2025-04-13-23-19-43.pem
-rw------- 1 root root 2822 Apr 14 03:46 kubelet-client-2025-04-14-03-46-51.pem
-rw------- 1 root root 1106 Apr 14 2027 kubelet-client-2027-04-14-03-39-21.pem-bak
-rw------- 1 root root 1106 Apr 14 2027 kubelet-client-2027-04-14-04-04-01.pem
lrwxrwxrwx 1 root root 59 Apr 14 2027 kubelet-client-current.pem -> /var/lib/kubelet/pki/kubelet-client-2027-04-14-04-04-01.pem
-rw-r--r-- 1 root root 2250 Apr 13 23:19 kubelet.crt
-rw------- 1 root root 1675 Apr 13 23:19 kubelet.key
如果为了续期更改过系统时间
这时候就产生了一个时间跳变的问题
时间跳变后,pod 的时常变为未知
一些 pod 的无法启动,显示 pod 名被预定
crictl ps -a |grep 有问题的 pod
crictl stop pod && crictl rm pod
即可恢复
将状态不正常的 pod 都 delete
正文完