跳到主要内容

第一次恢复

把上一步产生的还原点恢复回集群,并理解恢复向导里最容易出错的两个选项。

前置条件​

  • 已经有一个处于 Completed 状态的还原点,参见 保护第一个应用。
  • 您的角色是 admin,或是目标命名空间范围内的 editor。

第一步:选择还原点​

左侧菜单进入「应用还原」页,找到目标还原点,点行尾的操作菜单选择「恢复」,打开「从备份恢复」抽屉。

第二步:选择目标命名空间​

抽屉的「目标应用 / 命名空间」区块有三种选择:

  • 原始命名空间:恢复回 my-app 自身。
  • 已有的其他命名空间:恢复到一个已存在的命名空间。
  • 新建命名空间:例如 my-app-restored,适合做演练,不影响生产。
危险

选择原始命名空间时,界面会要求勾选「我已了解 — 删除并重建该命名空间」。这是因为 Velero 默认跳过已存在的资源:不先清空,恢复会「成功」但什么都没变。勾选后 SupKube 会先删除该命名空间及其中全部资源再开始恢复。

第三步:处理冲突预检​

抽屉下方的「冲突预检」会扫描目标集群,把结果分为阻断与警告两级:

  • 阻断不可忽略,必须点「一键修复」生成变换规则,或点「去 Transform 解决」手工处理。
  • 警告可以逐条勾选「忽略此 warning」后继续。

预检识别的冲突类型包括 NodePort 已被占用、clusterIP 已被占用、Ingress host 已被使用、目标集群缺少 StorageClass、镜像 registry 不可达等。

备注

一键修复生成的是一条原子「变换规则」(Transform)。需要先把它加入某个「变换集」(Transform Set),再回到恢复抽屉选择该变换集,规则才会生效。

第四步:确认恢复选项​

「可选恢复设置」里的「当目标资源已存在时」决定 Velero 的 existingResourcePolicy:

取值行为适用场景
跳过已存在资源最安全,但目标命名空间已有同名对象时恢复等于空操作恢复到全新命名空间
更新已存在资源覆盖 ConfigMap、Secret 等可变对象;PVC 数据不会被更新配置回滚

确认无误后提交。页面会给出持久提示并自动跳转到实时活动流。

验证方法​

kubectl -n supkube get restores
kubectl -n my-app-restored get pods,pvc

恢复任务进入 Completed 后,目标命名空间里的工作负载应当逐步进入 Running。若结果是 PartiallyFailed,在还原点详情里查看错误列表定位失败对象。

相关文档​