在雲原生架構快速演進的背景下,Ingress 系統作為 Kubernetes 中流量管理的核心組件,其效能與靈活性直接影響服務的可擴展性與穩定性。Docker 在遷移其 Ingress 系統時,面臨舊有架構的瓶頸與技術挑戰,最終選擇以 Envoy Gateway 為核心,結合 Open Telemetry 與 XDS 標準,重新設計整體流量管理方案。本文將深入解析此遷移過程的技術細節與關鍵決策。
Ingress 系統 是 Kubernetes 中用於管理外部流量訪問內部服務的組件,傳統方案常依賴 HAProxy 或 EngineX 等代理工具,但隨著服務規模擴張,其限制逐漸顯現。
Envoy Gateway 是 CNCF 認證的開源項目,作為 Kubernetes 原生的 Ingress 控制器,提供動態 XDS 配置、豐富的路由模型與自服務路由能力。其核心元件 Envoy Proxy 作為數據平面,負責流量轉發與策略執行,而 Envoy Gateway 則作為控制平面,管理路由策略與配置生成。
動態 XDS 配置:Envoy Gateway 支援透過 Gateway API 進行實時配置更新,避免傳統控制檯的高可用性風險。
Open Telemetry 整合:提供全鏈路追蹤與觀察性能力,解決 HAProxy 無支援 Open Telemetry 的缺陷。
金絲雀部署與流量切換:透過 AWS ALB 的權重路由機制,實現灰度部署與即時回滾,降低遷移風險。
策略校驗與安全機制:利用 OPA Agent 驗證路由配置,防止重複域名/路徑等錯誤,並透過 Envoy Admin Console 限制遠端寫入端點。
網絡層遷移:
配置管理:
http.route
與 trafficPolicy
)。關鍵技術整合:
優勢:
挑戰:
Docker 的 Ingress 系統遷移案例展現了 Envoy Gateway 在現代雲原生架構中的關鍵角色。透過整合 XDS 標準、Open Telemetry 與 Gateway API,該方案有效解決了傳統 HAProxy 與 EngineX 的瓶頸,並提升系統的可觀察性與靈活性。然而,遷移過程中的 Gateway API 侷限與金絲雀部署複雜性,仍需透過 XDS Patch Policy 與控制平面擴展進行補強。未來,隨著 Envoy Gateway 的持續演進,其在 Kubernetes 生態中的影響力將進一步擴張。