记录一次k8s证书过期处理
使用kubeadm给kubernetes证书续期
·
这里写自定义目录标题
1、使用大佬的成果(-_-)
因为我的k8s是使用kubeadm搭建,所以只需要使用kubeadm直接续签就行;
原文连接:http://t.zoukankan.com/zoujiaojiao-p-15161862.html
2、查看证书有效期
kubeadm alpha certs check-expiration
确认是证书过期导致kubectl命令无法使用,再进行下面的操作。
3、备份数据
3.1 备份k8s证书及配置文件
cp -r /etc/kubernetes /etc/kubernetes_bak
3.2 备份用户config文件
cp $HOME/.kube/config $HOME/.kube/config_bak
4、重新生成证书
kubeadm alpha certs renew all
5、替换用户config
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
现在可以使用kubectl命令查看资源,但是无法创建;
6、重启kubelet
systemctl restart kubelet
systemctl status kubelet #查看重启后的状态
7、重启kube-apiserver、kube-controller-manager、kube-scheduler的pod
注:不能使用kubectl delete pod pod_name
来重启pod。至于为什么,可以参看大佬的文章
这一步如果没有做的话,kubectl命令能使用,但是无法扩容pod,也无法创建资源。
正确做法:
找到每个组件对应的docker 容器,然后重启容器
docker ps |grep kube-apiserver|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
docker ps |grep kube-controller-manage|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 {}
当然也可以只采用awk前面一段,然后手动restart。
这一步只需要在master节点上执行。
更多推荐
已为社区贡献6条内容
所有评论(0)