kubelet证书过期解决方法
昨天收到报警短信:集群中某node状态为notReady,由于是长期不用的,所以放到今天才有空处理,以下记录处理过程。
查看kubelet日志,发现不停的打印证书过期相关提示信息。
以下操作基于kubernetes集群版本:v1.6.6
kubelete 证书默认有效期一年
1.查看证书有效期,这里使用以前下载的cfssl-certinfo
curl - s - L - o / usr / local / bin / cfssl - certinfo https: / / pkg.cfssl.org / R1. 2 / cfssl - certinfo_linux - amd64 chmod + x / usr / local / bin / cfssl - certinfo cfssl - certinfo - cert / etc / kubernetes / ssl / kubelet.crt |
显示内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | { "subject" : { "common_name" : "test@1505813004" , "names" : [ "test@1505813004" ] }, "issuer" : { "common_name" : "test@1505813004" , "names" : [ "test@1505813004" ] }, "serial_number" : "1" , "sans" : [ "test" ], "not_before" : "2017-10-24T09:23:24Z" , "not_after" : "2018-10-24T09:23:24Z" , "sigalg" : "SHA256WithRSA" , "authority_key_id" : "", "subject_key_id" : "", "pem" : "-----BEGIN CERTIFICATE-----\nMIIDDKDK........EHi\nThGfI/wURC0=\n-----END CERTIFICATE-----\n" } |
2. 重新生成证书
在证书过期node删除kubelet相关证书文件及配置文件然后重启kubelet,
kubelet会向apiserver发起一个csr
rm /etc/kubernetes/kubelet.kubeconfig rm /etc/kubernetes/ssl/kubelet.* systemctl restart kubelet systemctl status kubelet
1 2 3 4 5 6 | / / 查看未授权的CSR请求: kubectl get csr<br> / / approve CSR 请求: kubectl certificate approve csr - 4pw6g NAME AGE REQUESTOR CONDITION csr - 4pw6g 1h kubelet - bootstrap Approved,Issued |
3. 重启kubelet
1 2 3 4 5 6 7 | / / 重启kubelet systemctl restart kubelet / / 查看node状态 kubectl get no NAME STATUS AGE VERSION external Ready 1y v1. 6.6 |
4. 另:在kubernetes1.7之后,可以采用集群自动签发证书方案,但仍然需要手动重启kubelet, 在1.8之后,就可以自动签发,自动renew证书;也可以设置更长的有效期。后继再添加整理相关内容。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)