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