服务网格ASM通过Envoy代理为应用服务提供了全局负载均衡能力,其能够以最佳方式将流量路由至某个服务位于多个地域的应用实例。本文以Bookinfo应用为例,介绍ASM跨地域多集群的全局负载均衡的能力。
前提条件
- 创建一个ASM实例(本例中mesh1),详情请参见创建ASM实例。
- 在集群创建之前做好网络规划,保证两个集群所使用的交换机IPv4网段不能重叠、Pod网络CIDR与Service CIDR不能重叠。
- 在两个VPC 下分别创建两个ACK集群(本例中m1c1和m1c2),详情请参见创建Kubernetes专有版集群。
- 开通云企业网(CEN)。
- 两个VPC通过CEN实现互通,详情请参见教程概览。
- 在云企业网控制台中发布每一个网段,以确保这些网段在CEN中的状态为已发布并且不存在网段冲突。详情请参见发布路由到云企业网。
背景信息
- 本文所使用的网络规划如下所示:
对象 集群m1c1 集群m1c2 VPC、交换机IPv4网段 192.168.0.0/24 192.168.1.0/24 Pod网络CIDR 172.22.0.0/16 172.30.0.0/16 Service CIDR 172.23.0.0/20 172.31.0.0/20 - 在ACK集群中,Pod的位置是通过其部署节点上的region和zone标签确定的,详情请参见Well-Known Labels, Annotations and Taints。ACK集群默认已经配置了这些信息。
步骤一:部署应用示例到跨地域的多个集群上
部署Bookinfo应用到跨地域的不同VPC的多个集群上。
步骤二:启用服务就近访问
为了确定服务对应的任一实例何时异常,Envoy代理需要在每个服务的目标规则中进行异常检测配置,详情请参见DestinationRule。在此情况下,ASM会根据发送请求的Envoy代理位置,针对目标服务的工作负载实例,进行优先级排序。当所有应用实例都正常时,请求将保留在同一位置,即保持服务就近访问。
此时没有在服务reviews对应的目标规则中定义异常检测配置,因此访问productpage页面,刷新页面时会轮流显示reviews的3个版本,即:
- v1版本不会调用Ratings服务。
- v2版本会调用Ratings服务,并使用1到5个黑色星形图标来显示评分信息。
- v3版本会调用Ratings服务,并使用1到5个红色星形图标来显示评分信息。
步骤三:定义异常检测配置
启用了服务就近访问的负载均衡之后,需要定义目标规则中的异常检测配置,Envoy代理才能确定应用实例是否正常,进而实现服务就近访问。
执行结果
- v1版本不会调用Ratings服务。
- v2版本会调用Ratings服务,并使用1到5个黑色星形图标来显示评分信息。
说明 假设位于集群m1c1的reviews服务出现故障(可以通过缩容Pod数量为0进行模拟),再次访问productpage页面,则可以看到页面中的reviews服务调用了v3版本,即使用1到5个红色星形图标来显示评分信息。
在文档使用中是否遇到以下问题
更多建议
匿名提交