kubeadm证书到期自动续签
#!/bin/bash /bin/kubeadm alpha certs renew all cd cp /root/.kube/config /root/.kube/bak-config-$(date +%F) #备份原来的文件 /bin/\cp /etc/kubernetes/admin.conf /root/.kube/config #将生成的新证书替换原来的老证书 /bin/kubeadm alpha certs check-expiration #查看证书日期释放更新 /bin/mv /etc/kubernetes/manifests/kube-apiserver.yaml / #重启apiserver sleep 30 #间歇30秒 /bin/mv /kube-apiserver.yaml /etc/kubernetes/manifests/ #重启apiserver
systemctl restart kubelet #重启kubelet
sleep 30 /bin/kubectl get nodes #查看是否正常 # 分发K8S证书到其他节点,先备份原来的config文件再分发,注意,需要能免密登录到可以执行kubectl的机器,或者使用rsync服务进行同步 #ssh 172.21.91.125 && cp /root/.kube/config /root/.kube/bak-config-$(date +%F) #备分原来老的证书 #scp /root/.kube/config 172.21.91.125:/root/.kube/ #复制到目标机器 #ssh 172.21.91.125 && kubectl get nodes #执行检查结果 exit 0
定时任务解决,每年执行一次
00 00 1 12 * /bin/bash /data/scripts/k8s_Certificate_renewal.sh
如果kubelet 报错
bootstrap-kubelet.conf: no such file or directory kubelet证书轮换失败
需要修改kubelet.conf
将/etc/kubernetes/admin.conf 里面的client-certificate-data:内容和client-key-data:内容替换kubelet.conf里面对应的内容
admin.conf
kubelet.conf需要替换的内容位置
重启kubelet
systemctl restart kubelet
如果还是不行,需要将/roo/.kube 目录重名名,具体步骤如下
mv /root/.kube /root/.kube_bak mkdir -p /root/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
然后执行kubectl 命令验证结果
使劲折腾才会有更好的结果!!!!
如有不对请不吝赐教,感谢!
转载请注明出处!