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 证书与密钥,作为持久化与分发介质。
自签发证书的轮换遵循以下步骤:
- 检查有效期:
cilium-operator定期检查 CA 证书的剩余有效期(默认检查间隔 5 分钟)。 - 触发轮换:当 CA 证书剩余有效期低于阈值(默认 30 天)时,operator 生成新的 CA 密钥对。
- 更新 Secret:新 CA 证书被写入对应的 Kubernetes Secret(
cilium-ca),保留旧 CA 证书用于过渡。 - 分发新 CA:
cilium-agent通过 Watch 机制感知 Secret 变更,拉取新 CA 证书。 - 重新签发:每个
cilium-agent使用新 CA 重新签发自身的节点证书与工作负载证书。 - 建立新连接:新证书被用于后续 mTLS 握手,旧证书在过渡期内仍被信任。
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 / 工作负载 | 使用新证书建立连接,旧证书在过渡期内仍被信任 |
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 指标,提前发现即将过期的证书。