配置和验证跨集群故障切换

本文档以 Bookinfo 应用为例,说明如何基于多集群服务网格实现应用的跨集群故障切换。

目录

步骤

  1. 在左侧导航栏,点击 Service Mesh > Mesh

  2. 点击要配置的 服务网格名称

  3. Mesh Policies 标签页,点击集群 c1 右侧的 Create Policy > Circuit Breaker

    NOTE
    • 如果没有特殊要求,使用默认参数。

    • 如果服务未配置 Circuit Breaker Policy,则该服务的 Failover 配置不会生效,入口流量会在服务网格中所有集群的服务 Pod 之间随机转发。若服务配置了 Circuit Breaker Policy,入口流量将在该服务所在集群内路由,直到该集群内所有 Pod 都被触发熔断。

  4. Mesh Policies 标签页,点击集群 c1 右侧的 Create Policy > Regional Load Balancing

  5. 选择 Failover 作为 Policy Type,并按下表描述配置相关参数。

    参数描述
    Failure Region失败服务 Pod 所在集群的地域,即策略配置的集群地域。
    Disaster Recovery Region为失败服务 Pod 所在集群提供负载均衡的地域。
    NOTE

    配置故障切换策略后,当失败地域集群中的服务 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

  6. 点击 Create

验证方法

  1. 在顶部导航栏,点击产品视图切换,切换到 Container Platform,进入集群 c1 下的命名空间 ns1

  2. 在左侧导航栏,点击 Compute Components > Deployments

  3. 点击 productpage 的 Deployment 名称

  4. 点击右上角的 Stop,停止 productpage 的所有 Pod。

  5. 参考 productpage 服务的访问验证方法,基于集群 c1 部署的网关创建的路由配置(External Access Address)持续访问 productpage 服务。

    注意:如果仍能正常访问 Bookinfo 应用,说明已实现跨集群故障切换。你还可以进入 Service Mesh 平台,通过查看服务拓扑(跨集群)和调用链进一步验证流量转发情况。