在雲原生架構快速演進的背景下,服務於 Kubernetes 的 API 網關技術持續革新。Emissary Ingress 作為一個開源項目,專注於解決集群內外通訊的關鍵問題,並透過持續版本迭代與社區協作,逐步成為雲原生生態系的重要組成部分。本文將深入探討 Emissary Ingress 的技術特性、版本演進路徑,以及其在 CNCF 生態中的定位與未來方向。
Emissary Ingress 是一個基於 Kubernetes 的 API 網關解決方案,主要功能為提供集群內資源的外部訪問能力。其設計目標包含:
作為 CNCF 生態系的一部分,Emissary Ingress 的設計與實作嚴格遵循雲原生架構標準,並透過社區協作持續優化。
Emissary Ingress 透過 Kubernetes Custom Resource Definitions(CRD)實現配置管理。早期版本(V1/V2)因未遵循 CRD 規範,導致後續版本需透過轉換 Webhook 解決兼容性問題。現行版本(3.10.0)為 Emissary 3 系列的最終版本,已逐步解決舊版問題,例如移除下劃線、標準化時間單位等。
Emissary Ingress 支援 Gateway API(尚未完全實現),未來可能作為轉換層,取代現有的 Envoy 組件。此設計方向有助於與 CNCF 推廣的 Gateway API 標準對接,提升生態系兼容性。
項目強調簡化配置語言,避免過於複雜的設定。透過意見導向式配置,開發者可快速建立與調整 API 網關行為,同時降低學習曲線。
Emissary Ingress 支援 Endpoint Slices,並在 V4 版本中兼容不同端點類型。其授權模型為開放源碼,無企業版授權,與 Ambassador Edge Stack 的商業模式形成對比。
早期版本(V1/V2)因未遵循 CRD 規範,導致後續版本需透過轉換 Webhook 解決兼容性問題,增加維護成本。
V3 alpha1 引入 CRD 轉換 Webhook,但導致維護成本上升。此階段的設計目標為解決舊版問題,並為 V4 做準備。
V4 版本的關鍵變更包括:
此遷移計畫旨在降低維護成本,並提升與 Gateway API 的整合能力。
過去因 Ambassador Edge Stack 發布錯誤的 3.12.2 鏡像,導致 Emissary 的 artifact 被誤標,造成版本混淆。此問題已透過遷移至 GHCR(GitHub Container Registry)解決,確保未來版本管理的穩定性。
Ingate 基於 Gateway API 開發,可能推動 Gateway API 功能的完善,並與 Emissary Ingress 形成協同效應。
Emissary Ingress 已完全脫離 Ambassador Labs,成為獨立社區專案。未來需更多開發者參與維護與功能開發,並透過 CNCF Slack 協作(舊 Ambassador Lab Slack 已停用)。
Emissary Ingress 透過持續版本迭代與社區協作,逐步成為雲原生生態系的重要組成部分。其 V4 版本的遷移計畫與 Gateway API 整合,將進一步提升其作為 API 網關的競爭力。開發者應關注官方鏡像倉庫(GHCR)的版本管理,並參與社區協作,以確保技術的持續演進與穩定性。