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

《Kubernetes故障篇: kubelet 证书实现自动续签》

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《K8S集群运维指南》


一、kubelet证书说明

在 Kubernetes 集群中,kubelet 是运行在每个节点上的核心代理,负责管理 Pod 和容器。为了保证通信安全,kubelet 使用了多种证书来与 kube-apiserver 及其他组件进行双向 TLS 认证。下面我将详细介绍 kubelet 涉及的几种主要证书类型。


1、kubelet 客户端证书
kubelet 作为客户端与 kube-apiserver 通信时使用的证书。例如:向 API Server 报告节点状态(Node Status);监听 Pod 变更并执行操作(创建/删除容器);上报节点和容器的监控指标。kubelet-client-*.pem 证书(即 kubelet 的客户端证书)是由 Kubernetes 集群的根证书颁发机构(Root CA) 签发的,但在实际的集群操作中,负责签署工作的组件是 kube-controller-manager。

查看kubelet 客户端证书信息

/usr/bin/openssl x509-in/var/lib/kubelet/pki/kubelet-client-2026-03-12-09-47-35.pem-noout-text

2、kubelet 服务器端证书
kubelet 作为服务端,对外提供 HTTPS 服务的证书。主要场景包括:kube-apiserver 访问 kubelet 获取 Pod 日志(kubectl logs)、执行命令(kubectl exec)、端口转发等;监控组件(如 Prometheus)从 kubelet 的 /metrics 端点抓取指标;任何需要直接与 kubelet 通信的客户端(需验证服务端身份)。

查看kubelet 服务器证书信息

/usr/bin/openssl x509-in/var/lib/kubelet/pki/kubelet.crt-noout-text

3、kubelet的服务端证书和客户端证书过期影响
kubelet的服务端证书和客户端证书一旦过期,会分别从不同层面影响集群的健康状态。总的来说,客户端证书过期主要影响节点与API Server之间的通信,而服务端证书过期则主要影响API Server对节点的访问。如下图所示:


二、kubelet客户端证书续签

kubelet-client-current.pem,这是kubelet作为客户端去连接API Server时使用的证书。后者通常由kubelet自动轮转,而前者的处理方式取决于你的集群搭建方式。


2.1、kubeadm部署方式续签

1、在使用kubeadm初始化集群配置文件中,添加如下配置

rotateCertificates:true



2.2、二进制方式部署方式续签

1、在 kubelet 的配置文件中(通常是/var/lib/kubelet/config.yaml),添加或确认以下内容:

rotateCertificates:true

如下图所示:


2.3、kubelet客户端证书修改有效期

1、kubeadm部署方式,要修改 kubelet 客户端证书的有效期,需在kubeadm初始化集群配置文件中,添加如下参数

controllerManager: extraArgs - name:"cluster-signing-durat
http://www.cnnetsun.cn/news/1272740.html

相关文章:

  • AI NAS:当存储遇上智能,开启数据管理新纪元
  • 当变频器遇上S7-200:一个水厂老司机的自白
  • 电机温度场分析是工程师的必备技能,但实际工程中总有些坑等着你跳。今天咱们用ANSYS和Python混合双打,手把手拆解那些让新人抓狂的细节
  • 伺服电机、步进电机通用的S曲线及梯形加减速控制源码,十分经典,有中文注释及实现原理说明
  • 探索超立方体的数学奥秘与Processing动态可视化实践
  • 立创开源RF射频调试助手:基于ESP32-C3的双频(433/315MHz)信号采集与发射方案解析
  • Z-Image-GGUF开源镜像解析:GGUF量化原理、低显存适配与GPU算力优化
  • 基于海洋捕食者算法的LSTM网络模型(MPA-LSTM)的一维时间序列预测matlab仿真
  • 软件安全实战指南:从零日漏洞到安全部署的核心要义
  • 思博伦Spirent TestCenter中高效配置单播流uni-stream的实战指南
  • 从STEP到六面体网格:C++集成GMSH实现自动化CAE前处理
  • 解决C#项目中SQLite.Interop.DLL加载失败的依赖环境配置指南
  • 7-3 动态规划实战:凸多边形最优三角剖分(附代码+图解+递推方程解析)Let‘s Go!
  • 告别复杂代码!用AutoGen Studio低代码界面5分钟构建AI代理
  • Phi-3-Mini-128K行业落地:金融合规团队本地化财报分析与风险提示工具
  • 体育赛事与文娱活动已成为拉动中国旅客出行的重要驱动力
  • 基于立创开发板的土壤湿度传感器模块移植与ADC/GPIO双模式读取实战
  • 用快马平台十分钟复刻Notepad++:快速构建文本编辑器原型验证核心逻辑
  • 从零构建:在Keil MDK中为STM32F103搭建RT-Thread Nano开发环境
  • 如何用3步搞定演唱会抢票?开源自动抢票工具全攻略
  • [模电]从原理到实战:二极管核心特性与经典电路设计
  • STM32嵌入式视觉循迹系统设计与优化
  • AI赋能浏览器:基于快马平台快速开发集成大模型的智能扩展
  • AI辅助开发:让Kimi分析激活函数优劣,自动生成集成Swish等新函数的GRU情感分析模型
  • 【环境排障】PyCharm中torch子模块导入失败:从命名冲突到解释器重置的深度修复指南
  • Vue3 PrimeVue 后台管理系统开发实战:从零搭建高效UI框架
  • 实战应用:基于快马ai构建可插拔的消息通知系统核心spi模块
  • YOLO11快速上手:Jupyter一键运行,小白也能轻松训练模型
  • 3步实现多平台高效直播:obs-multi-rtmp插件全攻略
  • 【杰理蓝牙AC696X】蓝牙名称与提示音自定义实战指南