使用流量分发实现应用故障倒换
应用场景
在分布式集群场景下,为了给用户提供低延迟的服务,应用可能部署在不同区域、不同厂商的云端上,在某个地区集群发生故障时,该地区的用户访问也随之会受到影响。利用UCS的流量管理和应用数据管理功能,可以实现多云多集群场景下的应用故障倒换、调度和迁移,故障倒换方案示意如图1所示。
约束限制
- 您需要拥有两个Kubernetes版本为1.19及以上的可用集群,并且各个集群中至少拥有一个可用节点。
- 您需要已有一个公网域名,并添加至华为云云解析(DNS)服务,具体操作请参考快速添加网站域名解析。
环境搭建
- 将集群注册到UCS并接入网络。具体操作请参见注册集群。
例如,将集群“ccecluster01”、“ccecluster02”添加至UCS,并查看集群是否处于正常运行状态。
- 在添加至UCS的两个集群中分别创建一个工作负载。
为展示流量切换的效果,本实践中两个集群的容器镜像版本不同。
- 集群“ccecluster01”:示例应用版本号为1.0.0。
- 集群“ccecluster02”:示例应用版本号为2.0.0。
图2 创建工作负载
- 分别为两个集群中的应用创建“负载均衡”类型的服务。
仅支持访问类型为“负载均衡”的服务,其他类型的服务将被自动过滤。
- 浏览器访问负载均衡IP地址,查看部署结果。
图3 查看部署结果
功能验证
按照上述集群应用部署操作,示例应用分别部署在集群“ccecluster01”、“ccecluster02”中,并以“负载均衡”类型的服务对外提供访问。
下面将通过UCS的流量分发功能,实现多集群应用的故障倒换,验证应用的高可用容灾能力。
实践中的应用仅作示例,在实际生产环境中可替换为用户自有应用,且对示例集群的提供商、地域、数量不作限制。
- 登录UCS控制台,在左侧导航栏中单击“流量分发”。
- 在流量管理控制台页面,单击右上角“创建流量策略”,填写域名地址解析,设置本例中的测试域名为“demo.example.com”。
图4 创建流量策略
- 为两个集群服务分别添加调度策略,添加完成后单击“确定”。
本示例中,为模拟不同地域下的集群应用部署,添加三条调度策略:
- 集群“ccecluster01”线路类型设置为“地域解析-中国大陆/华东地区/上海”。
- 集群“ccecluster02”线路类型设置为“地域解析-中国大陆/华南地区/广东”。
- 为域名添加默认线路解析记录,设置集群“ccecluster01”线路类型为“全网默认”。如不设置默认线路解析将会造成指定线路外的地区用户访问失败。
图5 添加调度策略
- 此时已为测试域名“demo.example.com”添加了三条解析,用户流量将根据设置的线路类型和权重正常访问两个集群中的应用。
图6 调度策略列表
- 上海地区用户:将访问集群“ccecluster01”中的应用,版本为1.0.0。
- 广东地区用户:将访问集群“ccecluster02”中的应用,版本为2.0.0。
- 其他用户:将默认访问集群“ccecluster01”中的应用,版本为1.0.0。
- 广东地区用户通过域名“demo.example.com”访问应用,版本为2.0.0,说明访问的是集群“ccecluster02”中的应用。
图7 查看访问结果
- 此时手动停止集群“ccecluster02”中的应用,将实例个数调整为0,模拟环境故障。
图8 调整实例个数
- 广东地区用户访问应用时,依旧被解析至集群“ccecluster02”,返回错误。
此时需要在“流量分发”页面单击集群“ccecluster02”对应调度策略的“暂停”按钮,进行应用故障倒换。
图9 暂停调度策略
广东地区用户访问域名“demo.example.com”时,不再解析至集群“ccecluster02”,只会将默认线路解析结果返回,用户访问到集群“ccecluster01”,访问正常。待运维人员完成故障集群修复后,可单击“启用”按钮重新使用该线路解析。