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 命令验证结果

 

posted @ 2021-10-09 10:20  缺个好听的昵称  阅读(279)  评论(0编辑  收藏  举报