k8s v1.15.0 秘钥过期,保留部署,重建集群

  • 症状
    kubectl命令报错证书过期,无法新部署或者修改应用,运行中的应用状态正常。
root@master:~# kubectl get po
Unable to connect to server: x509: certificate has expired or is not yet valid   
  • 问题
    kubeadm自建证书有效期只有一年,可用下面命令查看,证书过期时间
root@master:~# openssl x509 -in /etc/kubernetes/pki/apiserver.crt  -noout -text  |grep Not
Not Before: Jun 14 08:37:50 2019 GMT
Not After : Mar  5 02:50:42 2021 GMT
  • 解决(注:生产环境慎用,操作前先备份数据,避免造成灾难性损失
  1. 使用kubeadm alpha phase certs系令,重新生成证书,网上有很多文章(未验证)

    在主节点上执行命令重新生成证书后,会导致集群不可用,所有应用都不可访问,由于需要快速恢复应用,放弃了后续操作
  2. 保存ETCD数据,用kubeadm重建集群,快速恢复应用

    备份数据,删除etcd /registry/secrets/kube-system/所有keys(不删除会导致新集群无法正常启动),用kubeadm init创建新集群,应用中配置过apiserver的证书也需要更新,最后测试应用是否正常

你可能感兴趣的:(kubernetes,docker,ssh)