多叢集閘道簡介

本文說明多叢集閘道在 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 資源 (例如 GatewayHTTPRoute) 部署至這個指定叢集。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 的位置為何。

下列高階步驟說明如何部署多叢集閘道:

  1. 定義閘道:在多叢集閘道設定中,您會建立閘道資源,定義設定叢集中的流量進入點。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 類別,請參閱「多叢集服務」。

  2. 將 HTTPRoute 附加至 Gateway:HTTPRoute 資源會定義傳入的 HTTP/S 流量如何轉送至特定後端服務。HTTPRoute 會附加至 Gateway 資源,並根據主機名稱、路徑、標頭等指定規則。HTTPRoute 也支援流量分配和流量鏡射等進階流量管理功能。

  3. 建立負載平衡器:部署 Gateway 和 HTTPRoute 資源時,GKE Gateway 控制器會解譯這些 API 物件,並動態設定必要的 Google Cloud 負載平衡基礎架構。然後,負載平衡器會將流量導向正確的 Pod,無論 Pod 位於哪個叢集。這個程序提供高效率且可擴充的流量傳輸方式。

流量

下圖說明多叢集閘道如何運作,做為在不同區域的兩個 GKE 叢集中執行的應用程式集中式負載平衡器:

GKE 中多叢集閘道的架構。
圖: 多叢集閘道架構

負載平衡器的行為會根據 HTTPRoute 資源中定義的規則設定。使用者流量抵達已佈建 Google Cloud 負載平衡器的 IP 位址 (由 Gateway 資源定義) 時,負載平衡器 (Google 管理的 Proxy) 會轉送流量。這個 Proxy (Google 前端 Proxy 或區域 Proxy) 會根據下列條件,將流量導向正確 GKE 叢集內的適當後端服務端點:

  • 健康狀態檢查
  • 流量拆分規則
  • 容量

流量會直接傳送至所選叢集中的最佳 Pod。

後續步驟