kubelet证书过期问题处理

通过sealos安装的k8s集群,虽然kubeadm证书是100年的,但是kubelet证书除master1节点外(sealos最开始部署在master1中),其他节点均是一年一续(自动续签),但是发现部分站点的master2节点的kubelet证书没有自动续签,具体原因未知,还需探索,如有大佬告知,将不胜感激

一、出现问题

日常巡检时发现大量的pod处于Terminated状态,查看kubectl get nodemaster2处于NotReady状态,具体报错(命令journal -xe查看)如下图红框所示:第二行中找不到文件无需理会,sealos部署的都没有这个文件,不影响使用。
报错: 404844 bootstrap_go:285} part of the existing bootstrap client certificate in /etc/kubernetes/kubelet.conf is expired: 2024-06-25 06:18:42 +0000 UTC
404744 run.go:74] "command failed " err="failed to run kubelet : unable to load bootstrap kubeconfig: stat /etc/kubernetes/bootstrap-kubelet.conf: no such file or directory,如下入下图:在这里插入图片描述

报错提示.conf文件过期,以前一直以为证书到期是报错x509: certificate has expired or is not yet valid,今天学到了,kubelet证书到期还会提示文件过期。

二、排查进入死胡同

因为最开始不确定是证书到期了,只能和无头苍蝇似的四处乱撞,看到master2服务器上的pod都是4年前启动的,这肯定不对,k8s集群才部署了一年,然后查看服务器时间timedatectl,看到RTC time与正常时间相差4年,感觉是这个问题,然后hwclock --set --date "北京时间"修改时间后,kubelet还是启动报错。然后又开启了漫漫百度路……

三、证书续签

百度到kubelet证书的一种续签方式

即/etc/kubernetes/admin.conf中的client-certificate-data 与 client-key-data  
替换/etc/kubernetes/kubelet.conf  client-certificate 与 client-key

在这里插入图片描述

在这里插入图片描述

所有节点替换完成后,重启kubelet,可以看到 /var/lib/kubelet/pki 文件夹下生成了新的kubelet-client证书

在这里插入图片描述

四、总结

按照以上方式改好后,重启kubelet会生成新的.pem .crt .key证书(重启kubelet就会生成新的.crt .key证书),但是.crt .key证书无需理会,目前来看不知道有啥用,即使过期很长时间,也不影响使用。

下面这个命令可以看到证书的有效期

openssl x509 -in 证书路径/证书名称 -noout -text | grep Not

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值