Secret 与凭据治理
Testudo 会处理多类高价值凭据。生产环境应避免把真实凭据写入公开 values 文件、截图或日志。
凭据类型
| 凭据 | 用途 | 建议 |
|---|---|---|
| 镜像拉取 Secret | 拉取 operator/server/web 镜像 | 复用集群已有 Secret,避免写入公开 values |
| 对象存储 access key | 访问备份 bucket | 最小权限、定期轮换、启用 bucket 审计 |
| 远端集群 kubeconfig/token | 访问源/目标集群 API | 最小权限、分集群保存、定期轮换 |
| JWT secret | 签发 Server access/refresh token | 生产环境必须替换默认值 |
| License Secret | 平台许可 | 通过平台接口或私有 values 安装 |
| webhook TLS Secret | admission webhook TLS | 推荐 cert-manager 管理 |
Helm values 规则
公开发布包中不要提交真实账号密码。推荐使用:
imagePullSecret:
existingSecret: default-secret
如必须通过 Helm 创建 Secret,只能在私有 values 文件中设置,并确保该文件不进入公开仓库。
对象存储凭据
对象存储账号应具备:
- 指定 bucket 的读写权限。
- list 权限。
- 必要的 multipart upload 权限。
不建议使用云账号主 AK/SK。应为容灾系统创建专用账号,并限制 bucket 范围。
远端集群凭据
注册源集群和目标集群时可使用 kubeconfig 或 token+endpoint。生产建议:
- 每个业务集群单独凭据。
- 不同环境隔离凭据。
- 凭据仅授权被保护命名空间和 Velero 所需资源。
- 删除集群前确认是否需要同步删除远端 Velero 资源。
验证与轮换
轮换凭据后应验证:
kubectl -n disaster-system get clusters.testudo.softcdata.com
kubectl -n disaster-system get storagerepositories.testudo.softcdata.com
kubectl -n disaster-system get disasterinstances.testudo.softcdata.com
同时在控制台检查集群连接、存储仓库状态、最新 DataSync/ResourceSync 状态。