记录一次k8s证书过期处理

这里写自定义目录标题

    • 1、使用大佬的成果(-_-)
    • 2、查看证书有效期
    • 3、备份数据
        • 3.1 备份k8s证书及配置文件
        • 3.2 备份用户config文件
    • 4、重新生成证书
    • 5、替换用户config
    • 6、重启kubelet
    • 7、重启kube-apiserver、kube-controller-manager、kube-scheduler的pod

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节点上执行。

你可能感兴趣的:(kubeadm,k8s证书过期,kubernetes,docker,容器)