本文說明多叢集閘道在 Google Kubernetes Engine (GKE) 中的運作方式。多叢集閘道是強大的網路解決方案,可讓您管理部署在多個 GKE 叢集中的服務流量。
本文適用於負責設計及建構機構網路的雲端架構師和網路專家。如要進一步瞭解我們在 Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。
總覽
多叢集閘道是透過 Kubernetes Gateway API 資源設定。GKE Gateway 控制器會監控這些資源 (Gateway、HTTPRoute),並自動佈建及維護所需的Google Cloud 全域負載平衡基礎架構。這項基礎架構可為部署在車隊內多個 GKE 叢集中的服務,提供進階流量管理功能。多叢集閘道會使用 Google Cloud的全球負載平衡基礎架構,為應用程式提供單一整合式進入點。這種做法有以下優點:
- 簡化管理作業
- 提高可靠性
- 啟用進階流量管理功能
流量管理功能
多叢集閘道提供進階功能,可管理多個叢集的流量。您可以實作複雜的轉送策略,例如分階段發布和藍綠策略,安全地部署變更。如要進行精細控制,可以使用以標頭為準的相符功能,以一小部分的流量測試變更,或依權重分割流量,逐步將要求從不同叢集後端轉移。
多叢集閘道也支援流量鏡像,可將即時使用者要求的副本傳送至新服務,測試效能,不會影響使用者。為確保可靠性及避免過載,多叢集閘道支援以健康狀態為準的容錯移轉,以及以容量為準的負載平衡,可根據服務的定義容量分配要求。
多叢集閘道的運作方式
參與多叢集 Gateway 設定的所有 GKE 叢集,都必須註冊至機群。機群能有條理地將叢集分組,讓您在叢集間維持一致的管理方式和通訊。機群中的一個 GKE 叢集會指定為設定叢集。
設定叢集是多叢集 Gateway 設定的集中控制點。您只會將所有多叢集 Gateway API 資源 (例如 Gateway 和 HTTPRoute) 部署至這個指定叢集。GKE Gateway 控制器會監控設定叢集的 Kubernetes API 伺服器,尋找這些資源。
如要選擇設定叢集,請考慮高可用性 GKE 叢集,例如區域叢集。這可確保控制器能持續調解 Gateway API 資源的更新。
多叢集閘道控制器會使用多叢集服務 (MCS),在機群內的多個 GKE 叢集中探索及存取 Kubernetes 服務。MCS 是 GKE 功能,可讓您在機群中,探索不同 GKE 叢集內執行的服務,並建立連線。
MCG 會使用 MCS 探索哪些叢集提供哪些服務,以便將外部流量轉送至這些服務。MCG 控制器會使用 MCS API 資源,將 Pod 分組為可定址且跨越多個叢集的單一 Service。
根據您在 Gateway API 資源中定義的設定,GKE Gateway 控制器會提供外部應用程式負載平衡器或內部應用程式負載平衡器。這個負載平衡器會做為應用程式的前端,並將流量直接分配至機群中健康狀態良好的 Pod,無論這些 Pod 的位置為何。
下列高階步驟說明如何部署多叢集閘道:
定義閘道:在多叢集閘道設定中,您會建立閘道資源,定義設定叢集中的流量進入點。Gateway 資源會指定 GatewayClass,這是特定類型負載平衡器的範本,例如全域外部應用程式負載平衡器或區域內部應用程式負載平衡器。在 GKE 中,下列 GatewayClass 會部署多叢集閘道:
gke-l7-global-external-managed-mc:佈建全域外部應用程式負載平衡器。gke-l7-regional-external-managed-mc:佈建區域性外部應用程式負載平衡器。gke-l7-cross-regional-internal-managed-mc:佈建內部應用程式負載平衡器。gke-l7-rilb-mc:佈建內部應用程式負載平衡器。gke-l7-gxlb-mc:佈建傳統版應用程式負載平衡器。
閘道也會指定要公開的網路接聽程式 (通訊埠和通訊協定),定義負載平衡器接聽連入流量的方式。如要進一步瞭解 GKE 支援的 Gateway 類別,請參閱「多叢集服務」。
將 HTTPRoute 附加至 Gateway:HTTPRoute 資源會定義傳入的 HTTP/S 流量如何轉送至特定後端服務。HTTPRoute 會附加至 Gateway 資源,並根據主機名稱、路徑、標頭等指定規則。HTTPRoute 也支援流量分配和流量鏡射等進階流量管理功能。
建立負載平衡器:部署 Gateway 和 HTTPRoute 資源時,GKE Gateway 控制器會解譯這些 API 物件,並動態設定必要的 Google Cloud 負載平衡基礎架構。然後,負載平衡器會將流量導向正確的 Pod,無論 Pod 位於哪個叢集。這個程序提供高效率且可擴充的流量傳輸方式。
流量
下圖說明多叢集閘道如何運作,做為在不同區域的兩個 GKE 叢集中執行的應用程式集中式負載平衡器:
負載平衡器的行為會根據 HTTPRoute 資源中定義的規則設定。使用者流量抵達已佈建 Google Cloud 負載平衡器的 IP 位址 (由 Gateway 資源定義) 時,負載平衡器 (Google 管理的 Proxy) 會轉送流量。這個 Proxy (Google 前端 Proxy 或區域 Proxy) 會根據下列條件,將流量導向正確 GKE 叢集內的適當後端服務端點:
- 健康狀態檢查
- 流量拆分規則
- 容量
流量會直接傳送至所選叢集中的最佳 Pod。
後續步驟
- 瞭解如何啟用多叢集閘道。
- 閱讀 GKE 閘道運作方式總覽。