ACMG(Alibaba Centralized Mesh Gateway)模式是一種專為大規模網路架構設計的解決方案,旨在提升網路的可擴充性、靈活性和管理效率。本文介紹ACMG模式的概念和相關功能。
功能介紹
阿里雲Service Mesh (ASM)從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層流量管理原則等才會正常生效。