Kubernetes Kubelet证书轮换配置指南
website Kubernetes website and documentation repo: 项目地址: https://gitcode.com/gh_mirrors/webs/website
概述
在Kubernetes集群中,kubelet组件使用证书进行API服务器的身份验证。默认情况下,这些证书的有效期为一年,这意味着管理员需要定期手动更新这些证书,否则会导致认证失败。从Kubernetes 1.8版本开始,系统引入了自动证书轮换功能,大大简化了这一过程。
证书轮换的基本原理
证书轮换机制允许kubelet在现有证书接近过期时自动完成以下操作:
- 生成新的密钥对
- 向Kubernetes API发起证书签名请求(CSR)
- 获取新证书后无缝切换使用
整个过程对集群操作完全透明,无需人工干预。
启用证书轮换功能
kubelet配置
要使kubelet启用自动证书轮换,需要添加以下启动参数:
--rotate-certificates=true
这个参数告诉kubelet在证书即将过期时自动发起轮换流程。
控制器管理器配置
kube-controller-manager需要配置证书签发有效期:
--cluster-signing-duration=8760h # 1年有效期
在Kubernetes 1.19版本之前,这个参数名为--experimental-cluster-signing-duration
。
证书轮换流程详解
-
初始启动阶段:
- kubelet使用
--bootstrap-kubeconfig
指定的引导凭证启动 - 向API服务器发起初始CSR请求
- 管理员或自动审批控制器批准该请求
- kubelet使用
-
证书签发阶段:
- 控制器管理器根据配置的有效期签发证书
- 签发的证书附加到CSR对象中
- kubelet获取并存储证书到
--cert-dir
指定目录
-
自动轮换阶段:
- 当现有证书剩余有效期在30%到10%之间时触发轮换
- kubelet自动生成新CSR
- 控制器管理器自动批准并签发新证书
- kubelet获取新证书并更新连接
监控证书状态
管理员可以通过以下命令查看集群中的证书签名请求状态:
kubectl get csr
正常情况下,节点的CSR会经历Pending
->Approved
的状态变化过程。
最佳实践建议
- 合理设置证书有效期:虽然可以设置很长的有效期,但出于安全考虑,建议保持1年或更短
- 监控证书轮换:建立监控机制,确保证书轮换过程正常进行
- 测试环境验证:在生产环境启用前,先在测试环境验证配置
- 版本兼容性:确保集群版本在1.8以上以获得稳定支持
常见问题排查
如果发现证书轮换失败,可以检查以下方面:
- kubelet日志中是否有相关错误信息
- CSR是否被正确批准
- 控制器管理器是否有足够权限签发证书
- 系统时间是否同步(证书有效期校验依赖时间)
通过合理配置证书轮换功能,Kubernetes管理员可以大大减少证书管理的工作量,同时提高集群的安全性。
website Kubernetes website and documentation repo: 项目地址: https://gitcode.com/gh_mirrors/webs/website
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考