跳到主要内容

执行容灾组切换

组级 Failover 会按照 DisasterGroup 的 levels 依次触发实例切换。它适合多组件业务系统的一键切换,但前提是每个实例的单独切换都已经验证过。

底层每个实例仍执行同一套长明火切换流程,详见 容灾切换流程

切换前检查

  • 组内所有实例状态为 Protected
  • 每个实例最近同步成功。
  • 分层顺序已经由业务负责人确认。
  • 目标集群容量足够承载全部实例。
  • 外部流量切换方案已经准备。

执行过程

  1. 触发组级 failover
  2. operator 创建组级操作并展开 levels。
  3. 同一 level 内按 parallelism 执行实例操作。
  4. 当前 level 完成后进入下一 level。
  5. 任一实例失败时按 fail policy 决定继续或停止。
  6. 写入组历史和实例历史。

API

POST /apis/disastergroups.testudo.softcdata.com/v1/groups/:name/actions
{"action":"failover"}

观察进度

kubectl get disastergroup <group-name> -o yaml
kubectl get disasteroperation -l testudo.softcdata.com/group=<group-name>

也可以在组配置和任务事件中观察。

容灾组配置

任务事件

完成后验证

  • 所有层级完成。
  • 每个实例有对应成功操作。
  • 目标集群应用按依赖顺序启动。
  • 外部访问按业务预案切到目标集群。
  • 失败实例有清晰 reason 和补偿动作。