跳到主要内容

容灾快速体验:保护一个命名空间并完成一次切换

这条路径用于验证完整容灾链路:创建同步策略、基础配置和容灾实例,等待实例进入 Protected,然后执行一次实例级 Failover。

本教程截图来自一次真实控制台演练:

项目示例值
实例docs-walkthrough-20260511
容灾配置dc01
保护命名空间dr-pvc-src-170
初始主集群ip170-test-001
初始备集群cluster-ip171-1774332463

前置条件

  • 源集群和目标集群已注册并 Ready。
  • 存储仓库已配置并且两端可访问。
  • 源集群中已有演示命名空间,例如 dr-pvc-src-170
  • 目标集群已经准备 StorageClass、IngressClass、镜像拉取 Secret 和必要 CRD。

创建策略

进入 策略管理,创建或选择 DataSync 和 ResourceSync 策略。

策略管理

创建策略时选择对应类型,并设置调度周期。

创建策略

选择同步策略类型

创建基础配置

进入 容灾管理 / 基础配置,创建源集群、目标集群、存储仓库和同步策略的组合。

容灾基础配置

创建容灾基础配置

创建容灾实例

进入 容灾管理 / 实例配置,创建保护对象,选择基础配置、命名空间、标签选择器和恢复策略。

容灾实例空列表

创建容灾实例基础信息

选择业务命名空间,工作负载模式保持 replica。截图中选择的是 test-nginx-2;如果按本教程环境演练,可以选择 dr-pvc-src-170。创建容灾实例时,命名空间下拉列表只展示包含运行中 Deployment 或 StatefulSet 应用的命名空间;裸 Pod、DaemonSet、Job/CronJob-only 命名空间不会作为可选保护范围。

选择保护命名空间

高级选项用于配置 StorageClass 映射、数据/资源同步策略覆盖、Resource Policies、资源定制化修改和批量修改/删除。这里是可滚动表单,如果需要配置资源范围,继续向下查看 Resource Policies 区域。

创建容灾实例高级选项

创建容灾实例 Resource Policies

保存后等待实例进入 Protected。界面展示为 保护中。此时 DataSync 已完成数据同步,ResourceSync 已在目标集群准备 standby 资源。

保护中的容灾实例列表

进入详情页后,可以查看基础信息、资源同步摘要和历史操作记录。

容灾实例详情

资源同步策略 标签查看 DataSync 和 ResourceSync 的最新状态。

资源与数据同步状态

执行 Failover

在实例操作中触发故障切换。operator 会依次执行预检查、暂停调度、最终同步、源端缩容、目标端扩容、检查副本和切换角色。切换设计和步骤说明见 容灾切换流程

保护中实例操作拓扑

点击 容灾切换 后,先确认参数。示例中验证了两种路径:

  • 勾选 源集群缩0执行最后一次同步:会执行最终同步,但本次真实环境的 FinalSync 超过 3 分钟超时,Operator 自动补偿恢复为 Protected
  • 不勾选 源集群缩0执行最后一次同步:跳过源端缩容和最终同步,使用最近一次成功同步点完成快速切换。

容灾切换确认框

切换执行中,实例状态展示为 故障切换中

容灾切换执行中

快速切换成功后,实例进入 Active,界面展示为 未保护,可执行 容灾回退反向保护

切换后 Active 状态

执行 反向保护 后,实例重新进入 Protected,保护方向变为目标集群到原源集群。

反向保护后回到保护中

验证

kubectl -n disaster-system get disasterinstance docs-walkthrough-20260511 -o yaml
kubectl -n disaster-system get disasteroperation -l testudo.softcdata.com/instance=docs-walkthrough-20260511
kubectl --context <target-cluster> -n dr-pvc-src-170 get deploy,sts,svc,pvc

完成标准:

  • Failover 成功后实例进入 Active,平台展示 未保护
  • 执行反向保护后实例回到 Protected,平台展示 保护中
  • 最新 DisasterOperation 成功。
  • 目标集群工作负载副本数恢复。
  • 如果选择执行源端缩容,源集群工作负载按策略缩容或停止服务;如果跳过源端缩容,需要由外部流量治理避免双写。
  • 任务事件无未处理错误。