4. 证书轮换机制:Cilium内置的证书自动轮换流程(cert-manager集成与自签发)

Cilium 在 mTLS 通信中依赖 X.509 证书来保证节点间与工作负载间的身份认证与传输加密。证书具有有效期,过期后会导致通信中断。Cilium 内置了两种证书轮换机制:自签发(Self-Signed) 与 cert-manager 集成。理解这两种机制的流程与差异,是保障生产集群网络稳定性的关键。

4.1 自签发证书轮换流程

当 Cilium 使用自签发 CA 时,cilium-agent 与 cilium-operator 共同管理证书的生命周期。轮换流程完全由 Cilium 内部组件驱动,无需外部依赖。

核心组件:
  • cilium-operator:负责生成并轮换 CA 证书。
  • cilium-agent:负责生成并轮换节点级与工作负载级证书。
  • Kubernetes Secret:存储 CA 证书与密钥,作为持久化与分发介质。

自签发证书的轮换遵循以下步骤:

  1. 检查有效期:cilium-operator 定期检查 CA 证书的剩余有效期(默认检查间隔 5 分钟)。
  2. 触发轮换:当 CA 证书剩余有效期低于阈值(默认 30 天)时,operator 生成新的 CA 密钥对。
  3. 更新 Secret:新 CA 证书被写入对应的 Kubernetes Secret(cilium-ca),保留旧 CA 证书用于过渡。
  4. 分发新 CA:cilium-agent 通过 Watch 机制感知 Secret 变更,拉取新 CA 证书。
  5. 重新签发:每个 cilium-agent 使用新 CA 重新签发自身的节点证书与工作负载证书。
  6. 建立新连接:新证书被用于后续 mTLS 握手,旧证书在过渡期内仍被信任。
Cilium 自签发证书轮换流程 自签发证书轮换流程 cilium-operator 检查 CA 有效期 生成新 CA 密钥对 更新 Kubernetes Secret cilium-agent 重新签发节点证书 过渡期内新旧 CA 均被信任,确保连接不中断

4.2 cert-manager 集成轮换流程

当集群已部署 cert-manager 时,Cilium 可以将证书管理委托给 cert-manager。这种方式利用 cert-manager 的 Issuer / ClusterIssuer 和 Certificate 资源,实现更灵活、可审计的证书生命周期管理。

推荐场景: 企业合规要求严格、需要与外部 PKI 集成、或希望统一管理所有组件证书的集群,优先选择 cert-manager 集成模式。

cert-manager 集成的轮换流程如下:

步骤 组件 动作
1 cert-manager 根据 Certificate 资源定义的轮换策略,在证书到期前自动续期
2 cert-manager 生成新证书与密钥,更新对应的 Kubernetes Secret
3 cilium-operator 通过 Watch 感知 Secret 变更,触发内部证书更新事件
4 cilium-agent 从 Secret 拉取新证书,更新本地 mTLS 配置
5 Envoy / 工作负载 使用新证书建立连接,旧证书在过渡期内仍被信任
cert-manager 集成证书轮换流程 cert-manager 集成证书轮换流程 Certificate 资源 cert-manager 控制器 更新 Kubernetes Secret cilium-operator cilium-agent cert-manager 负责续期,Cilium 负责消费,职责分离

4.3 两种机制的对比

维度 自签发 cert-manager 集成
外部依赖 无 需要部署 cert-manager
CA 管理 Cilium 内部管理 委托给 cert-manager Issuer
轮换策略 固定阈值(默认 30 天) 可自定义(CRD 配置)
审计能力 弱(依赖 Cilium 日志) 强(cert-manager 事件与资源状态)
与外部 PKI 集成 不支持 支持(通过 ACME、Vault 等)
运维复杂度 低 中(需维护 cert-manager)

4.4 关键配置参数

以下是与证书轮换相关的核心配置项:

配置项 默认值 说明
ca-regen-interval 5m CA 证书检查间隔
ca-regen-threshold 720h (30d) 触发 CA 轮换的剩余有效期阈值
cert-regen-interval 5m 节点证书检查间隔
cert-regen-threshold 168h (7d) 触发节点证书轮换的剩余有效期阈值
mesh-auth-mode crd mTLS 认证模式,影响证书使用方式
生产建议: 在大型集群中,证书轮换会触发大量 mTLS 连接重建。建议将轮换阈值设置为业务低峰期,并监控 cilium_agent_certificate_expiration_seconds 指标,提前发现即将过期的证书。