标签:kubernetes 证书 过期 update etc cert kubeadm
kubeadm证书过期问题解决
有用过kubeadm搭建过k8s集群的,应该都知道默认证书为一年,一年过期后,会导致kubelet服务启动不了。
我公司的kubeadm版本是:v1.10.1,据说是2018年运维搭的:单节点master,两个工作节点,共3台机器。
查看主节点master日志如下:
1、查看kubeadm的过期时间
(1)cd /etc/kubernetes/pki (2)for i in $(ls *.crt); do echo "===== $i ====="; openssl x509 -in $i -text -noout | grep -A 3 'Validity' ; done
2、证书过期解决方法: 查了好久,这个版本又太旧,而且我又不敢随意升级版本,因为jenkins,harbor,都在上面,怕升了丢了数据。 终于找到解决方法,参考:https://github.com/yuyicai/update-kube-cert
1 git clone https://github.com/yuyicai/update-kube-cert.git 2 cd update-kubeadm-cert 3 chmod 755 update-kubeadm-cert.sh
[root@master1 update-kube-cert]# ./update-kubeadm-cert.sh all
启动kubelet终于可以了。
3、重新查看证书过期时间:2029年才过期
4、检查相关证书文件是否已更新
(主要是apiserver,ca,front-proxy,和etcd的crt文件更新了)
ll /etc/kubernetes/pki
ll /etc/kubernetes/pki/etcd
5、其他检查工作
重新查看日志没问题:/var/log/messages(竟然把所有日志写到这里,服了服了。。。。)
(1)主节点的apiserver能启动成功
(2)工作节点重启docker和kubelet,也没有报错了
一些坑(大家可以忽略,在没查到github正确解决方法的时候踩的,记录下)
####################### 坑1、重新初始化会出事的
kubeadm init --kubernetes-version=v1.10.1 --pod-network-cidr=10.244.0.0/16 运行上面命令初始化之前,要保证这些目录是空的: /etc/kubernetes/pki/ /etc/kubernetes/pki/etcd /var/lib/etcd /etc/kubernetes 下的conf文件不能有 然后不知道为什么会报错说角色权限不够: k8s.io/kubernetes/pkg/kubelet/kubelet.go:460: Failed to list *v1.Node: Unauthorized kubectl get pod什么的都没有
2、虚拟机恢复之前的快照是可以运行整个集群服务的! ——》临时拖延解决方法
我们之前做了一个先于12月10前的快照,可以把kubeadm相关组件服务都启动起来,只要你不要同步网络时间,它还是以打快照时间为服务器时间,且是参照2020年12月10日作为过期时间的。当时以为找不到解决方法,只能这样先凑合用着先。(这版本太旧也是麻烦 = =)
标签:kubernetes,证书,过期,update,etc,cert,kubeadm 来源: https://www.cnblogs.com/windysai/p/14396393.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。