本文档以 Bookinfo 应用为例,说明如何基于多集群服务网格实现应用的跨集群故障切换。
在左侧导航栏,点击 Service Mesh > Mesh。
点击要配置的 服务网格名称。
在 Mesh Policies 标签页,点击集群 c1
右侧的 Create Policy > Circuit Breaker。
如果没有特殊要求,使用默认参数。
如果服务未配置 Circuit Breaker Policy,则该服务的 Failover 配置不会生效,入口流量会在服务网格中所有集群的服务 Pod 之间随机转发。若服务配置了 Circuit Breaker Policy,入口流量将在该服务所在集群内路由,直到该集群内所有 Pod 都被触发熔断。
在 Mesh Policies 标签页,点击集群 c1
右侧的 Create Policy > Regional Load Balancing。
选择 Failover 作为 Policy Type,并按下表描述配置相关参数。
参数 | 描述 |
---|---|
Failure Region | 失败服务 Pod 所在集群的地域,即策略配置的集群地域。 |
Disaster Recovery Region | 为失败服务 Pod 所在集群提供负载均衡的地域。 |
配置故障切换策略后,当失败地域集群中的服务 Pod 被触发熔断且该集群服务 Pod 的健康比例低于 71.43%(100/Overprovisioning Factor),该集群部分服务入口流量将优先转发至灾备地域集群的服务 Pod。
例如,配置了集群 c1
的故障切换策略(灾备地域为集群 c2
的地域),若失败地域集群 c1
中 productpage 服务 Pod 的健康比例为 50%,则集群 c1
中该服务的流量有 50% * 1.4 = 70%
由失败地域集群 c1
的服务 Pod 处理,剩余 30% 流量由灾备地域集群 c2
的服务 Pod 处理。
若未设置故障切换,流量将在网格内集群间随机转发。
详情请参见 Priority levels。
点击 Create。
在顶部导航栏,点击产品视图切换,切换到 Container Platform,进入集群 c1
下的命名空间 ns1
。
在左侧导航栏,点击 Compute Components > Deployments。
点击 productpage 的 Deployment 名称。
点击右上角的 Stop,停止 productpage 的所有 Pod。
参考 productpage 服务的访问验证方法,基于集群 c1
部署的网关创建的路由配置(External Access Address
)持续访问 productpage 服务。
注意:如果仍能正常访问 Bookinfo 应用,说明已实现跨集群故障切换。你还可以进入 Service Mesh 平台,通过查看服务拓扑(跨集群)和调用链进一步验证流量转发情况。