跳到主要内容

跨集群恢复与 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 仍负责实际恢复状态收敛。

排查路径

  1. 在目标集群查看 Velero BSL:

    kubectl --context prod-b -n velero get backupstoragelocation
    kubectl --context prod-b -n velero describe backupstoragelocation <name>
  2. 检查对象存储凭据和 endpoint。

  3. 检查源集群备份对象是否还在 TTL 内。

  4. 检查目标集群是否能解析和访问对象存储地址。

完成标准

  • 前置检查全部通过。
  • 目标集群 BSL 状态 Available。
  • 目标集群能读取指定备份。
  • 恢复任务开始后能创建 Velero Restore。