隨著微服務架構的普及,服務網格成為企業實現服務間通訊管理的重要工具。Istio 作為 CNCF 維護的核心服務網格解決方案,近年來持續擴展其跨平臺支援。2024 年 Istio 即將正式支援 Windows 作業系統,並透過 Ambient 模式實現 Sidecarless 架構,解決傳統 Envoy Sidecar 在 Windows 環境中的複雜性與遷移門檻。本文將深入探討 Istio 在 Windows 上的 Sidecarless 服務網格實現技術,並解析其關鍵技術細節與挑戰。
Sidecarless 架構摒棄傳統 Sidecar 容器的設計,改以 Ambient 模式實現服務間通訊管理。此模式透過 Layer 4 與 Layer 7 的分工,將網路代理功能分散至作業系統層,避免應用程式與代理共駐,降低部署與維護成本。
Ambient 模式透過作業系統的網路抽象層(如 Windows 的 HNS API)進行流量控制,並結合 Layer 4 的 Zunnel 代理與 Layer 7 的 Envoy 代理,實現無 Sidecar 的服務網格功能。此模式在 Windows 上的實現,需克服作業系統特有的網路隔離機制與 API 差異。
Windows 容器以「服務」為核心,與 Linux 的「檔案系統抽象」不同。其網路管理依賴 Host Compute System(HCS)與 Host Network Service(HNS),透過 Network Compartment 進行容器網路隔離。HNS Diag 工具可用於查看容器網路狀態,包含 Compartment ID 與 IP 位址等資訊,作為 Istio 服務網格整合的基礎。
Kubernetes 集群包含 2 個 Ubuntu 節點與 1 個 Windows Server 2022 節點,部署服務包括 Linux 容器的 curl
與 httpbin
服務,以及 Windows 容器的 PowerShell 腳本實現的網頁伺服器。
data-plane-mode: ambient
,自動將所有 Pod 加入服務網格。use-waypoint
標籤指定流量路由策略。Istio 在 Windows 的 Ambient 模式實現,透過 Layer 4 與 Layer 7 分工,解決傳統 Sidecar 架構的複雜性。Windows 網路架構的差異(如 HNS API、Network Compartment)是關鍵技術挑戰,需透過 API 替代方案實現功能對等。實驗性支援提供企業逐步驗證與遷移,未來將根據用戶反饋決定是否正式化。此技術的成熟化,將進一步推動服務網格在 Windows 環境中的應用與發展。