ACMG(Alibaba Centralized Mesh Gateway)模式是一种专为大规模网络架构设计的解决方案,旨在提升网络的可扩展性、灵活性和管理效率。本文介绍ACMG模式的概念和相关功能。
功能介绍
阿里云服务网格 ASM(Service Mesh)从1.22版本开始支持ACMG模式。与Ambient模式相同,ACMG模式也支持Sidecar和Sidecarless两种形态,主要功能覆盖了:
流量管理:基本流量路由、负载均衡、熔断、限流、故障容错、重试和超时等。
安全:面向L4层和L7层的授权策略。
可观测性:监控指标、访问日志、链路追踪。
不同的是,ACMG模式支持了集中式代理,以实现东西向流量的集中式管理,进一步简化运维、降低网格基础架构的资源占用。
设计理念
ACMG模式同样也将数据面分为了L4和L7两层,主要功能与Ambient模式相同,由控制面负责L4层代理和L7层代理的配置下发、CA服务的提供等。
值得注意的是,ACMG模式支持命名空间级别的多租户L7代理模式,提供集群粒度的代理服务共享,降低服务网格基础架构成本。同时L7组件由ASM管理,并且独立于应用程序运行,避免了对业务负载的侵入,更易于运维。
在具体实现中,可以大致分为以下两个组件:
组件 | 主要功能 |
zTunnel | 数据面组件,在数据面节点上作为业务负载的L4 层身份代理。 |
Central Proxy | 数据面组件,集中式的L7层代理,整个集群共享一个Central Proxy服务。ASM负责Central Proxy的部署以及弹性扩缩容等。 |
ACMG模式的特点
通过对比上图总结的三种模式的架构,可以看出:
模式 | 优点 | 缺点 |
Sidecar模式 |
| 因为给每个Pod都注入了sidecar容器,增加了应用部署的复杂度,集群的资源消耗、运维和管理的复杂程度也随之增加。 |
Ambient模式 |
|
|
ACMG模式与Ambient模式类似,同样支持以下能力:
解耦业务和网络:允许网络的独立升级和运维。
安全网络传输:保留节点级别的 zTunnel,以满足零信任网络架构要求。
而ACMG模式区别于Ambient模式的特性在于:
节省用户资源:通过多租支持,减少资源消耗。
降低运维负担:无需关注代理服务的创建,支持自动弹性,无需关注L7代理的扩缩容。
支持Central Proxy自动弹性:Central Proxy的多租户设计将使用一个服务来处理集群内的流量,ASM通过支持自动弹性来保障L7代理的正常运行。
与Sidecar和Ambient相比,ACMG模式的7层网络代理覆盖范围更大,可以被集群内所有服务共享。
ACMG模式下的路由
在ACMG模式下,工作负载可以分为以下2类:
未拦截:这是一个没有启用任何Mesh特性的标准Pod。
已拦截:这是一个通过zTunnel拦截流量的Pod。可以通过在命名空间上设置
istio.io/dataplane-mode=acmg
标签来捕获Pod。与此同时,被捕获的Pod流量会被Central Proxy代理。
zTunnel 路由
与Ambient模式下的zTunnel路由方式相同。更多信息,请参见zTunnel路由。
Central Proxy 路由
如果服务端所在的Namespace未通过命名空间label开启ACMG模式,无论客户端是否开启ACMG,流量都不会经过Central Proxy路由。
如果服务端所在的Namespace通过命名空间label开启了ACMG模式,此时只有客户端所在的Namespace已经开启了ACMG模式流量,从客户端发出的流量才会被zTunnel拦截,流量才会引流到Central Proxy,再将路由决策发送到服务端的某个Pod。
总而言之,只有客户端和服务端都开启了ACMG,流量才会经过Central Proxy,创建的L7层流量管理策略等才会正常生效。