当前位置: 首页 > 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.rkmt.cn/news/97773.html

相关文章:

  • MS-SSIM:图像恢复领域的“黄金标准“评价指标
  • HTML5如何结合国密加密实现大文件安全存储?
  • AutoGPT读写分离实现:提升数据库并发能力
  • 磁盘调度算法终极指南:Linux IO性能优化完整解决方案
  • AutoGPT在儿童教育游戏设计中的互动情节生成
  • 学Simulink——移动机器人导航场景实例:基于Simulink的BLDC阿克曼转向Stanley算法路径跟踪仿真
  • 2、深入了解 Linux:特性、版本与文件系统
  • HeyGem.ai Docker部署完整指南:从环境配置到一键启动全流程
  • MATLAB COCO API实战指南:从数据困惑到精准分析的蜕变之路
  • 小参数GPT训练数据预处理实战:从混乱数据到高质量语料
  • 3、Unix内核、内存寻址与进程管理全解析
  • 12.9 HTML
  • 16、深入探索nesC编程:高级布线与设计模式
  • Linux 中sed命令多条件匹配提取数据
  • FlashAttention突破性架构:重新定义LLM推理性能边界
  • 终极手绘风格组件开发指南:用wired-elements打造创意Web界面
  • POCO分布式锁深度解析:Redis与ZooKeeper性能对决与架构实践
  • NVIDIA开源GPU驱动内存管理终极指南:从内核源码到性能优化实战
  • 腾讯HunyuanVideo全面升级:130亿参数重构视频生成工业化范式
  • 揭秘腾讯混元3D-Part:从零掌握3D文件格式的实战指南
  • 解码宁波北仑仓库服务:新世洋信息化管理与一站式服务体验 - 品牌鉴赏师
  • 68、深入了解 Ubuntu:Linux 内核与操作系统的魅力
  • 大龄剩女的真实恋爱:从偶像剧到现实的转变
  • 经典算法 —— 布隆过滤器
  • 面向对象的设计第二阶段设计总结分析
  • Step-Audio 2技术深度解析:多模态音频理解如何重塑人机交互格局
  • 在 Android 上启用 LXC 容器:一次完整的实践记录
  • 鸿蒙 Electron 跨端测试体系构建:全场景兼容性验证与自动化实战
  • JVM
  • 帝国cms调用文章内容 二开基本操作