跨集群恢复与 BSL 前置检查
跨集群恢复要求目标集群能读取源集群写入的备份数据。平台在创建恢复前提供前置检查,用于验证目标集群的 BackupStorageLocation 和对象存储连通性。
适用场景
- 从生产集群恢复到测试集群。
- 从故障集群恢复到备用集群。
- 在新集群验证备份可恢复性。
- 迁移应用到另一个集群。
检查内容
前置检查通常覆盖:
- 目标集群是否已注册并 Ready。
- 目标集群是否能访问存储仓库 endpoint。
- 目标集群 Velero 是否可用。
- 目标集群是否存在或能创建 BSL。
- 备份对象是否存在。
- 目标集群的 StorageClass、IngressClass、CRD 是否满足恢复需求。
控制台流程
在创建应用恢复时,先选择备份来源,再向下滚动到 高级选项 / 恢复选项。勾选 跨集群恢复 后选择目标集群,平台会在保存前执行 BSL 前置检查。检查失败时不要强行恢复,先修正目标集群和仓库配置。

| 选项 | 说明 |
|---|---|
| 跨集群恢复 | 开启后不再默认恢复到备份来源集群,而是恢复到所选目标集群。 |
| 选择目标集群 | 目标集群必须已注册、Ready,并能访问源备份所在的同一个对象存储仓库。 |
| 恢复卷数据 | 跨集群恢复有状态应用时通常需要开启,同时要求目标集群有兼容 StorageClass 和 provisioner。 |
| 包含集群资源 | 会尝试恢复集群级资源,可能与目标集群已有 CRD、StorageClass、IngressClass 冲突。 |
| 资源控制 | 可通过包含/排除资源类型减少跨集群恢复的冲突面。 |
API 等价操作
POST /apis/apprestores.testudo.softcdata.com/v1/apprestores/preflight/validate
请求中应包含备份来源、目标集群、仓库、命名空间映射和恢复参数。server 会聚合检查结果,operator 仍负责实际恢复状态收敛。
排查路径
-
在目标集群查看 Velero BSL:
kubectl --context prod-b -n velero get backupstoragelocationkubectl --context prod-b -n velero describe backupstoragelocation <name> -
检查对象存储凭据和 endpoint。
-
检查源集群备份对象是否还在 TTL 内。
-
检查目标集群是否能解析和访问对象存储地址。
完成标准
- 前置检查全部通过。
- 目标集群 BSL 状态 Available。
- 目标集群能读取指定备份。
- 恢复任务开始后能创建 Velero Restore。