共计 582 个字符,预计需要花费 2 分钟才能阅读完成。
- 症状
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
- 解决(
注:生产环境慎用,操作前先备份数据,避免造成灾难性损失
)
-
使用 kubeadm alpha phase certs 系令,重新生成证书,网上有很多文章(未验证)
在主节点上执行命令重新生成证书后,会导致集群不可用,所有应用都不可访问,由于需要快速恢复应用,放弃了后续操作
-
保存 ETCD 数据,用 kubeadm 重建集群,快速恢复应用
备份数据
,删除 etcd /registry/secrets/kube-system/ 所有 keys(不删除会导致新集群无法正常启动),用 kubeadm init 创建新集群,应用中配置过 apiserver 的证书也需要更新,最后测试应用是否正常
正文完
发表至: kubernetes
2020-06-01