2. K8s 证书体系概述:集群内证书类型与生命周期

Kubernetes 集群的安全通信依赖一套完整的 PKI(公钥基础设施)体系。集群内各组件之间通过 TLS 证书进行身份验证和通信加密。理解证书的类型、用途及生命周期,是进行证书轮换容量规划的前提。

2.1 集群内核心证书类型与用途

K8s 集群主要包含以下 5 类核心证书,分别服务于不同的控制平面组件。下表总结了各证书的签发对象、用途及常见路径:

证书名称 签发对象 核心用途 常见路径(kubeadm 部署)
apiserver 证书 kube-apiserver 对外提供 HTTPS 服务,验证客户端身份;与 etcd、kubelet 通信时作为服务端证书 /etc/kubernetes/pki/apiserver.crt
kubelet 证书 kubelet(每个节点) kubelet 作为服务端时向 apiserver 证明身份;作为客户端时访问 apiserver /var/lib/kubelet/pki/kubelet-client-current.pem
etcd 证书 etcd 集群成员 etcd 节点间 peer 通信;etcd 客户端(apiserver)访问 etcd 服务端 /etc/kubernetes/pki/etcd/server.crt
controller-manager 证书 kube-controller-manager 以客户端身份访问 apiserver,用于签署 ServiceAccount 令牌等操作 /etc/kubernetes/pki/controller-manager.conf
scheduler 证书 kube-scheduler 以客户端身份访问 apiserver,获取 Pod 调度所需资源信息 /etc/kubernetes/pki/scheduler.conf
容量规划提示: 证书轮换时,apiserver 和 etcd 证书的重新签发会触发控制平面组件的重启或重载,直接影响 API 可用性和 etcd 租约续期。在规划资源预留时,需为这两个组件的证书轮换分配额外的 CPU 和内存突发容量。

2.2 证书生命周期与默认有效期

K8s 证书的有效期由签发时指定的 --duration 参数决定。不同部署工具和证书类型的默认有效期差异较大,直接影响轮换频率和资源消耗。

  • kubeadm 部署(v1.15+): 控制平面证书默认有效期为 1 年(365 天)。kubelet 客户端证书默认有效期为 1 年,但可通过 RotateKubeletClientCertificate 特性门控实现自动轮换。
  • kops / KubeOne 等工具: 通常默认 1 年,部分工具支持自定义有效期。
  • 自建 CA 手动签发: 有效期由管理员指定,常见设置为 1 年、2 年或 5 年。
  • etcd 证书: 默认有效期通常与 apiserver 证书一致(1 年),但 etcd 集群的 peer 证书和 client 证书可能使用不同的 CA。
关键风险: 证书过期会导致组件间通信失败。apiserver 证书过期将导致整个 API 不可用;etcd 证书过期会导致 etcd 集群分裂或数据读写失败。务必在证书到期前完成轮换,并预留足够的缓冲时间(建议至少 30 天)。

2.3 证书体系架构关系图

下图展示了 K8s 集群内各组件与证书之间的依赖关系,以及证书轮换时可能影响的服务链路:

K8s 集群证书体系架构图 K8s 集群证书体系架构与依赖关系 集群 CA 根证书 kube-apiserver etcd 集群 kube-controller-manager kubelet(各节点) kube-scheduler ServiceAccount 令牌 etcd 客户端证书 kubelet 服务端证书 controller-manager 客户端证书 scheduler 客户端证书 图例说明: • 紫色节点:集群根 CA,所有证书的信任锚点。 • 蓝色/红色/橙色/绿色/青色节点:各组件及其对应的证书类型。 • 箭头方向表示“使用证书进行身份验证”的通信方向。 • 证书轮换时,apiserver 和 etcd 证书的重新签发会触发控制平面重启,影响面最大。

2.4 证书轮换的关键时间节点

证书轮换作业的容量规划需要关注以下时间节点,以确保在证书到期前完成操作:

  • T - 90 天: 启动证书到期监控告警,检查所有证书的剩余有效期。
  • T - 60 天: 制定轮换计划,评估集群负载窗口,预留维护时间槽。
  • T - 30 天: 执行非生产环境证书轮换演练,验证自动化脚本和回滚方案。
  • T - 7 天: 在生产环境执行证书轮换,优先处理 apiserver 和 etcd 证书。
  • T - 0 天: 证书到期,集群可能进入不可用状态。务必在此之前完成轮换。
容量规划要点: 证书轮换期间,apiserver 重启会导致 API 请求排队或超时,建议在低峰期操作并预留 20%-30% 的 API 请求处理能力余量。etcd 证书轮换时,etcd 成员重启会触发 leader 选举,建议预留 1 个额外的 etcd 节点资源以维持 quorum。