密钥方案对比 Sealed Secrets SOPS Vault
三种方案对应两种哲学:密文进 Git(Sealed Secrets、SOPS + age),或 Git 只放引用、真身在外部服务(Vault + ESO)。
| Sealed Secrets | SOPS + age | Vault + ESO | |
|---|---|---|---|
| 密钥真相源 | Git(非对称密文) | Git(结构化密文,键可读值加密) | Vault 数据库;Git 里只有 ExternalSecret 引用 |
| 密钥对出生地 | 集群内 → 私钥要备份出来 | 集群外 → 私钥要注入进去 | 集群外服务 |
| 集群重装 | 先恢复私钥,否则密文全废 | 天然免疫 | 天然免疫,重装 ESO 后密钥自动流回 |
| 轮换 / 审计 / 动态凭据 | 无 | 无 | 主场能力 |
| 消费者范围 | 仅 k8s | 任何持钥方 | k8s + compose + CI 多平面 |
| 运维成本 | 约等于零 | 约等于零(纯 CLI) | 真实服务:unseal、备份、暴露面 |
| ArgoCD 集成 | 原生(普通 CR) | 需 KSOPS / CMP sidecar,繁琐易碎 | 原生(ESO 物化出普通 Secret) |
| Git 回滚语义 | 回滚连密钥值一起回 | 同左 | 只回滚引用,值的历史在 Vault 侧 |
经验法则:Flux 用户默认 SOPS(kustomize-controller 原生解密),ArgoCD 用户默认 Sealed Secrets,需要全生命周期管理才上 Vault + ESO。
本地拍板(2026-08-17):集群反复重装 + 未来 CI 与 compose 共用的期权 → Vault + ESO,测试级取舍(单 unseal key、root token 同机)见 Vault 线上部署与硬化。
相关:L3 密钥管理 · Helm Secrets