全部產品
Search
文件中心

Alibaba Cloud Service Mesh:ACMG模式

更新時間:Sep 04, 2024

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的部署以及彈性擴縮容等。

image

ACMG模式的特點

image

通過對比上圖總結的三種模式的架構,可以看出:

模式

優點

缺點

Sidecar模式

  • 可以通過這些sidecar容器對每個服務執行個體進行獨立配置。

  • 增強服務調用之間的網路安全性、可靠性和可觀測性。

  • 支援靈活的流量管理、負載平衡以及多種類似斷路器、請求路由等進階功能。

因為給每個Pod都注入了sidecar容器,增加了應用部署的複雜度,叢集的資源消耗、營運和管理的複雜程度也隨之增加。

Ambient模式

  • 沒有額外的sidecar容器,網格代理可以完全獨立運行,不再需要修改或重新部署現有應用程式,使得部署和管理變得更加簡單。

  • 支援逐步採用Mesh技術,可以從保護傘開始,逐步增加功能,適應不同的遷移策略。

  • 一些特定情境下,如特定用戶端配置或目標服務策略時,Ambient模式無法靈活處理。

  • Waypoint的配置需要按Service或者Namespace以顯式指定的形式部署,也有一定的營運成本。

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層流量管理原則等才會正常生效。