ASM支援兩種資料面模式:Sidecar模式和Ambient模式。本文介紹如何選擇適合您的資料面模式。
Sidecar模式
Sidecar模式中,叢集內的每個Pod都會被注入一個Envoy代理,用於處理進出該Pod的所有流量。
ASM自上線以來就基於Sidecar模式構建,Sidecar模式經過了多個版本的打磨並吸收了大量使用者的反饋,目前已經十分成熟穩定。
流量路徑
在Sidecar模式下,典型的流量路徑如下圖所示:
Ambient模式
Ambient模式由Istio社區在2022年推出,旨在解決Sidecar模式的固有缺點。應用Pod內不再有Envoy代理。轉而通過節點級的Ztunnel和獨立部署的Waypoint實現L4和L7能力。從ASM 1.25開始,ASM的Ambient模式在單叢集情境下正式生產就緒。
功能介紹
4層代理稱為Ztunnel,使用Rust語言開發,旨在處理3層和4層流量,比如mTLS、身分識別驗證、4層鑒權和可觀測。它以Daemonset的形式部署,同一節點上的Pod共用一個Ztunnel,所有進出這些Pod的流量都會被Ztunnel處理。
7層代理稱為Waypoint,基於Envoy實現,以Deployment形式部署,獨立於業務應用,它的升級、安裝完全無需業務Pod變更。您可以選擇為指定的Service或Pod開啟Waypoint代理,多個Service或Pod也可以複用同一個Waypoint代理。開啟Waypoint代理之後,所有發往該Service或Pod的請求都會先轉寄給這個Waypoint代理,您配置的各種7層功能也將在Waypoint上被執行。
無需注入Sidecar是Ambient模式的重要特性,這樣可以降低網格的使用和營運門檻。您僅需對特定命名空間添加啟用Ambient的標記,就可以立刻獲得mTLS和L4可觀測能力。如果您需要更進階的L7能力,可以選擇性地為指定應用或這個命名空間部署Waypoint來實現。
流量路徑
Ambient模式的流量路徑如下所示:
功能對比
功能項 | Sidecar模式 | Ambient模式 |
流量管理 | 完整的Istio功能集。 | 完整的Istio功能集(需要啟用Waypoint)。 |
安全 | 完整的Istio功能集。 | 完整的Istio功能集:預設情況下支援mTLS和L4安全;L7鑒權需要啟用Waypoint。 |
可觀測 | 完整的Istio功能集。 | 完整的Istio功能集:預設情況下支援L4可觀測;L7可觀測需要啟用Waypoint。 |
啟動方式 | 為命名添加自動注入標籤並重啟所有Pod以添加Sidecar。 | 為命名空間添加標籤,無需重啟Pod。 |
升級方式 | 支援原地升級和金絲雀升級。 需要重啟所有業務Pod以注入新版本Sidecar。 | 支援原地升級。資料面組件隨控制面同時升級,無需重啟業務Pod。 |
生命週期管理 | 代理由應用開發人員管理。 | 平台管理員,應用開發人員無需感知代理的存在。 |
資源使用率 | 每個Pod都有L7代理,想要實現較高的資源使用率比較困難。 | Waypoint代理可以獨立調整資源和擴縮容,甚至可以整個命名空間乃至叢集使用同一個Waypoint。能夠實現更高的資源使用率。 |
平均資源成本 | 大 | 小 |
平均延遲(基於Istio社區資料) | 0.63ms~0.88ms | 無Waypoint:0.16ms~0.20ms 有Waypoint:0.40ms~0.50ms |
L7解析次數 | 兩次(用戶端Sidecar和服務端Sidecar) | 無Waypoint:0次 有Waypoint:1次 |
大規模情境支援 | 需要對每個Sidecar的配置範圍進行精細定製,以削減配置量。 | 無需自訂,預設只會下發必需的配置。 |
“Server First”協議支援 | 需要明確配置。 | 預設支援。 |
Kubenetes Job支援 | 由於和Pod生命週期綁定,情況較為複雜。 | 透明支援。 |
安全模型 | 最強:每個工作負載都有自己的密鑰。 | 強:每個Ztunnel中僅具有該節點上的工作負載密鑰。 |
被入侵的Pod是否可以訪問網格密鑰 | 可以。 | 不可以。 |
Ambient模式採用了L4和L7分離的架構,並且支援選擇性啟用L7能力。這種設計允許您在不需要L7功能時無需負擔L7的處理成本。
目前Sidecar和Ambient的混用並未生產就緒。如果您想要在同一個網格中同時使用Sidecar和Ambient模式,兩個模式之間的Pod不可以有相互調用。
Ambient模式暫不支援同時管理多個叢集。
Ambient模式L4和L7能力說明
7層流量處理的開銷遠高於4層。如果某個服務的需求僅需要4層功能就可以滿足,您完全可以讓該服務的流量不經過Waypoint,這樣可以顯著降低網格的資源佔用並提升效能。以下為Ambient的L4和L7常用能力說明。
維度 | 4層能力 | 7層能力 |
安全 |
|
|
可觀測性 |
|
|
路由 | TCP串連層級的負載平衡。 |
|
可擴充性 | N/A | Wasmplugin |