观察 ResourceSync:资源骨架与两阶段恢复
ResourceSync 负责同步 Kubernetes 资源清单。它让目标集群提前拥有可切换的资源骨架,并在 Failover 时快速激活。
这也是 V2 Pilot Light(长明火)切换模式的基础:备集群先有 standby 资源,切换时再由 Failover 拉起工作负载。完整切换步骤见 容灾切换流程。
本页继续使用实例 docs-walkthrough-20260511。实例详情页的 资源同步策略 标签可以同时查看资源同步和数据同步状态。

同步内容
通常包括:
- Deployment、StatefulSet、DaemonSet。
- Service。
- ConfigMap、Secret。
- PVC 资源对象。
- Ingress。
- 其他业务命名空间资源。
Standby Modifier
目标集群资源恢复后,工作负载通常保持 standby。例如 Deployment 副本数被设置为 0,原始副本数以 annotation 或状态记录保存。
Failover 时,operator 按记录恢复副本数。
页面模块
详情页的同步状态来自接口:
GET /apis/disasterinstances.testudo.softcdata.com/v1/instances/:name/sync-status
页面分为两张同步卡片:
| 卡片 | 对应对象 | 用途 |
|---|---|---|
| 资源同步 | ResourceSync | 同步 Kubernetes 资源骨架,例如 Deployment、Service、ConfigMap、Secret、PVC 等。 |
| 数据同步任务 | DataSync | 同步数据面资源,例如 PVC/PV 和与数据恢复相关的对象。 |
每张卡片包含:
- 备份:本次同步备份到的资源数量。
- 恢复:恢复到目标集群的资源数量。
- 状态:
Ready在界面展示为 就绪。 - 上次备份成功:来自子资源最近一次成功同步时间。
- 成功率:根据成功/失败次数计算。
本次真实验证中:
| 同步对象 | 状态 | 备份数量 | 恢复数量 | 最近成功时间 |
|---|---|---|---|---|
ResourceSync | Ready | 9 | 4 | 2026-05-11 09:39:07 |
DataSync | Ready | 3 | 2 | 2026-05-11 09:39:40 |
两阶段恢复
ResourceSync 可以先恢复资源骨架,再配合 DataSync 恢复数据。这样做的好处是:
- 目标集群提前暴露资源兼容性问题。
- Failover 时不需要从零创建全部资源。
- 演练时能复用同一套恢复策略。
查看状态
kubectl -n disaster-system get resourcesync dr-rs-docs-walkthrough-20260511
kubectl -n disaster-system describe resourcesync dr-rs-docs-walkthrough-20260511
kubectl -n disaster-system get datasync dr-ds-docs-walkthrough-20260511
验证目标侧 standby
kubectl --context <target-cluster> -n dr-pvc-src-170 get deploy,sts,pod,svc,pvc
期望工作负载存在,但副本数按 standby 策略保持为 0 或不对外服务。Service、ConfigMap、Secret 等资源应存在。
常见问题
- 资源恢复成功但 selector 与 Service 不匹配。
- Secret 没有恢复,Failover 后镜像拉取失败。
- IngressClass 不匹配,目标 Ingress 不生效。
- 目标集群缺少 CRD,自定义资源恢复失败。
- 首次同步长时间停留在
InProgress时,先看子资源事件,再看 AppBackup/AppRestore 是否还在等待 Velero 备份元数据同步。