文档首页/ 华为云UCS/ 最佳实践/ 流量分发/ 使用流量分发实现应用故障倒换
更新时间:2024-11-01 GMT+08:00

使用流量分发实现应用故障倒换

应用场景

在分布式集群场景下,为了给用户提供低延迟的服务,应用可能部署在不同区域、不同厂商的云端上,在某个地区集群发生故障时,该地区的用户访问也随之会受到影响。利用UCS的流量管理和应用数据管理功能,可以实现多云多集群场景下的应用故障倒换、调度和迁移,故障倒换方案示意如图1所示。

图1 多云集群应用故障倒换示意图

约束限制

  • 您需要拥有两个Kubernetes版本为1.19及以上的可用集群,并且各个集群中至少拥有一个可用节点。
  • 您需要已有一个公网域名,并添加至华为云云解析(DNS)服务,具体操作请参考配置网站解析

环境搭建

  1. 将集群注册到UCS并接入网络。具体操作请参见注册集群

    例如,将集群“ccecluster01”、“ccecluster02”添加至UCS,并查看集群是否处于正常运行状态。

  2. 在添加至UCS的两个集群中分别创建一个工作负载。

    为展示流量切换的效果,本实践中两个集群的容器镜像版本不同。

    • 集群“ccecluster01”:示例应用版本号为1.0.0。
    • 集群“ccecluster02”:示例应用版本号为2.0.0。
    图2 创建工作负载

  3. 分别为两个集群中的应用创建“负载均衡”类型的服务。

    仅支持访问类型为“负载均衡”的服务,其他类型的服务将被自动过滤。

  4. 浏览器访问负载均衡IP地址,查看部署结果。

    图3 查看部署结果

功能验证

按照上述集群应用部署操作,示例应用分别部署在集群“ccecluster01”、“ccecluster02”中,并以“负载均衡”类型的服务对外提供访问。

下面将通过UCS的流量分发功能,实现多集群应用的故障倒换,验证应用的高可用容灾能力。

实践中的应用仅作示例,在实际生产环境中可替换为用户自有应用,且对示例集群的提供商、地域、数量不作限制。

  1. 登录UCS控制台,在左侧导航栏中单击“流量分发”
  2. 在流量管理控制台页面,单击右上角“创建流量策略”,填写域名地址解析,设置本例中的测试域名为“demo.example.com”。

    图4 创建流量策略

  3. 为两个集群服务分别添加调度策略,添加完成后单击“确定”

    本示例中,为模拟不同地域下的集群应用部署,添加三条调度策略:

    • 集群“ccecluster01”线路类型设置为“地域解析-全球/亚太地区/新加坡”
    • 集群“ccecluster02”线路类型设置为“地域解析-中国大陆/华南地区/广东”
    • 为域名添加默认线路解析记录,设置集群“ccecluster01”线路类型为“全网默认”。如不设置默认线路解析将会造成指定线路外的地区用户访问失败。
    图5 添加调度策略

  4. 此时已为测试域名“demo.example.com”添加了三条解析,用户流量将根据设置的线路类型和权重正常访问两个集群中的应用。

    图6 调度策略列表
    • 新加坡地区用户:将访问集群“ccecluster01”中的应用,版本为1.0.0。
    • 广东地区用户:将访问集群“ccecluster02”中的应用,版本为2.0.0。
    • 其他用户:将默认访问集群“ccecluster01”中的应用,版本为1.0.0。

  5. 广东地区用户通过域名“demo.example.com”访问应用,版本为2.0.0,说明访问的是集群“ccecluster02”中的应用。

    图7 查看访问结果

  6. 此时手动停止集群“ccecluster02”中的应用,将实例个数调整为0,模拟环境故障。

    图8 调整实例个数

  7. 广东地区用户访问应用时,依旧被解析至集群“ccecluster02”,返回错误。

    此时需要在“流量分发”页面单击集群“ccecluster02”对应调度策略的“暂停”按钮,进行应用故障倒换。

    图9 暂停调度策略

    广东地区用户访问域名“demo.example.com”时,不再解析至集群“ccecluster02”,只会将默认线路解析结果返回,用户访问到集群“ccecluster01”,访问正常。待运维人员完成故障集群修复后,可单击“启用”按钮重新使用该线路解析。