ACMG模式
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層流量管理策略等才會正常生效。