1. 问题背景与影响范围
在Rancher管理的Kubernetes集群中,rke2和k3s的证书检查功能存在一个关键缺口:直到2025年5月版本发布前,系统不会自动检查kube-controller-manager和kube-scheduler组件的证书有效性。这个看似技术细节的问题,实际上可能成为集群安全的"定时炸弹"。
我去年在客户生产环境就遇到过因此导致的集群故障——某个凌晨2点,kube-scheduler证书突然过期,导致整个集群的调度功能瘫痪。更棘手的是,这类问题往往在证书实际过期时才会暴露,而常规监控很难提前预警。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 证书管理机制深度解析
2.1 RKE2/k3s证书体系设计
这两个发行版的证书体系采用分层管理架构:
- 第一层:etcd、kube-apiserver等核心组件证书(已纳入自动检查)
- 第二层:kubelet、kube-proxy等节点组件证书(已纳入自动检查)
- 第三层:controller-manager、scheduler等控制平面组件证书(当前未检查)
证书检查的代码逻辑位于pkg/cluster/certificate/check.go,通过以下关键函数实现:
go复制func CheckCertificates(ctx context.Context, config *Config) error {
// 当前实现仅检查以下证书类型
certTypes := []string{
"etcd",
"kube-apiserver",
"kubelet",
"kube-proxy",
}
...
}
2.2 缺失检查的风险场景
-
证书过期导致服务中断:当这两个组件的证书过期时,会出现:
- kube-controller-manager:Deployment/StatefulSet等资源停止更新
- kube-scheduler:新Pod无法被调度到节点
-
中间人攻击风险:未定期轮换的证书可能被暴力破解
-
合规审计失败:某些行业规范要求所有组件证书必须定期轮换
