服务网格ASM提供查看应用网格拓扑的功能。本文以入口网关访问bookinfo应用为例,介绍如何在ASM中结合网格拓扑观测同可用区优先路由(简称同AZ路由)。
前提条件
已创建ASM实例。具体操作,请参见创建ASM实例。
已创建Kubernetes托管版集群。具体操作,请参见创建Kubernetes托管版集群。
已添加集群到ASM实例。具体操作,请参见添加集群到ASM实例。
ACK集群中的节点存在至少两个可用区,本示例中分别使用cn-hangzhou-j和cn-hangzhou-k,您可以在容器服务管理控制台查看集群节点所对应的ECS所在地域及可用区。更多信息,请参见地域和可用区。
已实现入口网关和网格拓扑的访问。具体操作,请参见入门指引。
已安装v3版本Helm客户端。具体操作,请参见Helm。
步骤一:部署示例应用
下载示例应用的Helm安装文件。
解压到asm-az-routing目录,在values.yaml文件中指定使用的可用区信息。
可用区信息示例如下:
zone1: cn-hangzhou-j zone2: cn-hangzhou-k
执行以下命令,部署示例应用。
helm install --namespace azdemo azdemo ./
Pod正常运行后,执行以下命令,通过网关访问服务。
while true; do curl -I http://{替换为网关地址}/productpage ; echo;sleep 1; done
步骤二:配置网格拓扑
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择 。
在网格拓扑页面,单击复制Token并在新页面打开ASM网格拓扑。
在登录网格拓扑页面登录Token文本框中粘贴Token,单击登录。
选择目标命名空间,在设置显示信息下拉列表选中流量分布、流量请求速率和流量动画,取消选中服务节点。
显示示例如下:
步骤三:通过网格拓扑验证路由自动切换
将部署在第一个可用区的reviews-v1的Pod缩容为0,模拟服务不可用的状态。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在目标应用右侧操作列下,单击伸缩,配置所需容器组数量为0,然后单击确定。
返回步骤二:配置网格拓扑的网格拓扑页面,查看网格拓扑。
显示示例如下:可以看到productpage v1指向了reviews-v2,即在本可用区的reviews服务不可用时,会自动切换到另一可用区的reviews服务。
步骤四:通过网格拓扑验证同AZ路由
将部署在第一个可用区的reviews-v1的Pod扩容为1,模拟服务可用的状态。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在目标应用右侧操作列下,单击伸缩,配置所需容器组数量为1,然后单击确定。
返回步骤二:配置网格拓扑的网格拓扑页面,查看网格拓扑。
显示示例如下:可以看到productpage v1再次指向reviews-v1(本可用区的reviews服务),同AZ路由成功。