希曼日记

External Secrets Operator 接线

本页目录 3
  1. 形态
  2. minio 接线模式(可复制样板,实测 2026-08-17)
  3. 已知边界

集群侧组件:kubernetes 仓 components/external-secrets/,遵循组件契约(component.env / values.yaml / install.sh / README)。镜像当日直连 ghcr.io 拉取成功——同日 *.nju.edu.cn 镜像站整站故障,「LAN 拉 ghcr 必须代理」的旧结论不恒成立,values 里留了降级路径注释。

形态

  • ClusterSecretStore 一个(AppRole 认证);role-id / secret-id 引用 Secret vault-approle,由 install.sh 从环境变量创建——Git 里零凭据,secret zero 只存在于 VPS 与集群内
  • 集群重装恢复 = 重跑组件 + 注入凭据,共两条命令;集群内没有需要备份的密钥状态
  • refreshInterval 分级约定:静态密钥默认 1h;需要立即生效用 force-sync 注解或临时调小;不要抄 1m——无 reloader 时物化更新不等于 Pod 生效,快轮询是纯空转的公网请求

minio 接线模式(可复制样板,实测 2026-08-17)

Vault secret/k8s/minio → ExternalSecret 物化 Secret minio-root(同名同键)→ Deployment 的 secretKeyRef 零改动。install.sh 逻辑:store Ready 则接管(先删 legacy Secret,否则 ESO 报 secret exists 拒绝接管);store 不可用则回退本地随机凭据。component.env 声明 DEPENDS_ON="external-secrets" 保证安装顺序。

验证三连:Secret ownerReferences 指向 ExternalSecret;Pod env 哈希 = Secret 哈希 = Vault 值;轮换传播 18 秒。

已知边界

  • 物化 ≠ 生效:值轮换后 Pod 不会自动重启,reloader 类工具待决策
  • Vault sealed 或不可达时:已物化 Secret 保留旧值,存量业务无感,只影响轮换、新密钥与重装时点

相关:L3 密钥管理 · Vault 线上部署与硬化 · Kubernetes Secret