🎯 課程目標____HTMLTAG_68__HTMLTAG_69___了解 Gateway API v1.4 是取代傳統 Ingress 的新標準,如何使用 GatewayClass、Gateway、HTTPRoute 路由流量、金絲雀部署的流量分割、TLS 終止以及流行的實現。
1。傳統 Ingress 的問題
Ingress API 自 K8s 1.1 起就存在,並且有很多限制:
-
___HTMLTAG_76__HTMLTAG_77___註解地獄:每個控制器(nginx、traefik、haproxy)使用不同的註解→供應商鎖定
___HTMLTAG_80__HTMLTAG_81___表達能力有限:無內建流量分割、標頭修改
___HTMLTAG_84__HTMLTAG_85___單一資源:基礎架構與應用程式團隊角色沒有分離
___HTMLTAG_88__HTMLTAG_89___TLS 限制:沒有本機 TLS 後端
Ingress-NGINX:進入 維護模式(2026 年 3 月)。未新增功能。
2。網關 API v1.4 GA — 2025 年 10 月
Gateway API 是一個 Kubernetes SIG 網路項目,透過以下方式標準化流量管理:
-
___HTMLTAG_102__HTMLTAG_103___角色導向的設計:明確區分基礎設施供應商、叢集營運商、應用開發者的角色
___HTMLTAG_106__HTMLTAG_107___富有表現力:流量分流、標頭匹配、URL重寫是一等公民
___HTMLTAG_110__HTMLTAG_111___可移植:相同的清單適用於任何網關 API 實作
___HTMLTAG_114__HTMLTAG_115___可擴充:TLSRoute、GRPCRoute、TCPRoute、自訂擴充
3。資源層次結構
___程式碼區塊_0___3.1 GatewayClass
___程式碼區塊_1___3.2 網關
___程式碼區塊_2___3.3 HTTPRoute — 基於路徑的路由
___程式碼區塊_3___4。流量分割 — Canary 部署
___程式碼區塊_4___5。標頭匹配和 URL 重寫__HTMLTAG_130___ ___程式碼區塊_5___
6。 BackendTLSPolicy — 到後端的 TLS (v1.4)
___程式碼區塊_6___7。使用 ReferenceGrant 進行跨命名空間路由
___程式碼區塊_7___8。 GRPCRoute
___程式碼區塊_8___9。實作網關 API
-
___HTMLTAG_140__HTMLTAG_141___Cilium Gateway API:基於 eBPF,與 Cilium CNI 原生集成,最有效
___HTMLTAG_144__HTMLTAG_145___Envoy Gateway:基於 Envoy 的、功能豐富的 CNCF 項目
___HTMLTAG_148__HTMLTAG_149___nginx-gateway-fabric:基於 nginx,穩定
___HTMLTAG_152__HTMLTAG_153___Istio:與服務網格 Istio 整合
___HTMLTAG_156__HTMLTAG_157___Traefik:支援從 v3.0 開始的網關 API v1
10。從入口遷移到網關 API
___程式碼區塊_9___摘要
- Gateway API v1.4 GA(2025 年 10 月)= 取代 Ingress 的新標準
- 面向角色:GatewayClass(下文)→ Gateway(叢集操作)→ HTTPRoute(應用程式開發)
- 流量分流、標頭匹配、URL重寫都是一流的
- BackendTLSPolicy:到後端的 TLS (v1.4)
- Cilium 閘道 API:基於 eBPF,建議與 Cilium CNI 一起使用
- Ingress-NGINX:維護模式 2026 年 3 月 — 應遷移到網關 API