当前位置: 首页 > news >正文

K8s 证书又双叒过期?3招教你平滑轮换记录【转】

维护 K8s 集群,证书过期问题是绕不过去的坎,特别是控制平面,严重依赖一套 PKI 证书来保证组件间的安全通信,而一旦核心证书过期(如 APIServer),无论使用云方案还是私有化部署,都可能导致 APIServer 拒绝连接,Kubelet 节点失联等。

一、查看证书

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text  | grep Not 

图片

二、检测证书是否过期?

1、在集群 Master 节点上,运行以下命令查看证书的过期时间:

kubeadm certs check-expiration 

该命令会列出所需要续期的证书及过期日期:

CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED admin.conf                 Aug 05, 2025 12:11 UTC   91d             ca                      no apiserver                  Aug 05, 2025 12:11 UTC   91d             ca                      no apiserver-etcd-client      Aug 05, 2025 12:11 UTC   91d             etcd-ca                 no apiserver-kubelet-client   Aug 05, 2025 12:11 UTC   91d             ca                      no 

2、手动检查

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -dates 

三、证书续期

如果证书即将过期,可以使用 kubeadm 命令来续期证书

kubeadm certs renew all 
  • 如果遇到问题,可以尝试使用脚本来延长证书的有效期

证书续期后,需要重启所有节点上的 kubelet 服务才能使新证书生效:

sudo systemctl daemon-reloadsudo systemctl restart kubelet 

四、验证证书是否更新

在完成以上步骤,再次运行 kubeadm certs check-expiration 命令,验证证书的是否已经更新。

五、脚本的角度

可以将证书的问题写进一个脚本里:

#!/bin/bash   echo"## 到期前续期 ##" /usr/local/bin/kubeadm certs check-expiration   echo"## 通过 kubeadm 来续期证书 ##" /usr/local/bin/kubeadm certs renew all   echo"## 通过 kubeadm 来重启平面中的 Pods 节点 ##" /usr/local/bin/crictl pods --namespace kube-system --name 'kube-scheduler-*|kube-controller-manager-*|kube-apiserver-*|etcd-*' -q | /usr/bin/xargs /usr/local/bin/crictl rmp -f   echo"## 更新 /root/.kube/config ##" cp /etc/kubernetes/admin.conf /root/.kube/config  
echo"## 等待 apiserver 重新启动 ##" until printf"" 2>>/dev/null >>/dev/tcp/127.0.0.1/6443; dosleep 1; done  
echo"## Expiration after renewal ##" /usr/local/bin/kubeadm certs check-expiration 


可以通过创建 system 服务来调用脚本。

转自

https://mp.weixin.qq.com/s/VV72FcHDJTLHameVWP1gkQ

http://www.jsqmd.com/news/87513/

相关文章:

  • Step-Audio 2音频大模型:重新定义智能语音交互新纪元
  • ALVR无线串流性能调优终极指南
  • 5步掌握DolphinScheduler分布式工作流调度实战指南
  • FlashAttention突破性指南:如何用IO感知技术实现20倍内存节省
  • MS-SSIM:图像恢复领域的“黄金标准“评价指标
  • HTML5如何结合国密加密实现大文件安全存储?
  • 磁盘调度算法终极指南:Linux IO性能优化完整解决方案
  • 多级缓存设计思路——本地 + 远程的一致性策略、失效风暴与旁路缓存的取舍
  • 网页前端如何配合JSP完成1T文件分块上传?
  • AutoGPT读写分离实现:提升数据库并发能力
  • ExifToolGUI完全攻略:快速上手元数据编辑与GPS定位
  • PKHeX插件完全指南:解锁宝可梦数据管理新维度
  • 学Simulink——机器人力控场景实例:基于Simulink的永磁同步电机重力补偿力矩控制仿真
  • AutoGPT在儿童教育游戏设计中的互动情节生成
  • OpenPLC Editor开源工具在工业自动化领域的应用实践
  • 4大突破:Flash-Attention在AMD GPU上的性能跃迁实战指南
  • NVIDIA开源生态与硬件革新推动AI发展
  • 什么是 Vibe Coding?为什么提出者自己后来放弃了它
  • 湖北中教教育姚利民老师 做武汉学历提升靠谱引路人 - 速递信息
  • 学Simulink——移动机器人导航场景实例:基于Simulink的BLDC阿克曼转向Stanley算法路径跟踪仿真
  • 分治算法精解:归并排序技术的深度剖析与实践指南
  • 新能源行业“抢人战“升级:HR如何避免“招到的人用不上,想用的人招不来“?
  • 2、深入了解 Linux:特性、版本与文件系统
  • 学Simulink——机器人轨迹跟踪场景实例:基于Simulink的永磁同步电机多关节同步轨迹跟踪仿真
  • HeyGem.ai Docker部署完整指南:从环境配置到一键启动全流程
  • MATLAB COCO API实战指南:从数据困惑到精准分析的蜕变之路
  • 2025清障车市场盘点:领先生产厂家综合评测,落地清障车/重型清障车/清障车/3万左右清障车/帕菲特清障车/8吨清障车清障车源头厂家口碑排行 - 品牌推荐师
  • 3、Unix内核、内存寻址与进程管理全解析
  • 12.9 HTML
  • 学Simulink--风电基础控制场景实例:基于Simulink的PMSG三闭环(功率/转速/电流)基础控制仿真