执行容灾组切换
组级 Failover 会按照 DisasterGroup 的 levels 依次触发实例切换。它适合多组件业务系统的一键切换,但前提是每个实例的单独切换都已经验证过。
底层每个实例仍执行同一套长明火切换流程,详见 容灾切换流程。
切换前检查
- 组内所有实例状态为
Protected。 - 每个实例最近同步成功。
- 分层顺序已经由业务负责人确认。
- 目标集群容量足够承载全部实例。
- 外部流量切换方案已经准备。
执行过程
- 触发组级
failover。 - operator 创建组级操作并展开 levels。
- 同一 level 内按 parallelism 执行实例操作。
- 当前 level 完成后进入下一 level。
- 任一实例失败时按 fail policy 决定继续或停止。
- 写入组历史和实例历史。
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 和补偿动作。