Cloud Service Mesh 負載平衡

Cloud Service Mesh 會使用 Sidecar Proxy 或無 Proxy gRPC,為內部微服務提供全球負載平衡。您可在多個地區中部署內部微服務 (以 Sidecar Proxy 為基礎,或以無 Proxy gRPC 為基礎)。Cloud Service Mesh 會向 Sidecar Proxy 或無 Proxy gRPC 提供健康狀態、轉送及後端資訊,使 Proxy 可在服務的多個雲端地區中對應用程式執行個體執行最佳化流量轉送。

在下圖中,使用者流量會透過外部全域負載平衡器進入部署。 Google Cloud外部負載平衡器會根據使用者所在位置,將流量分配至 us-central1asia-southeast1 的前端微服務。

內部部署作業具有三項全球微服務功能:「Front End」(前端)、「Shopping Cart」(購物車) 及「Payments」(付款) 功能。每個服務都會在兩個地區的代管執行個體群組 (MIG) 上執行,分別是 us-central1asia-southeast1。Cloud Service Mesh 使用的全球負載平衡演算法,可將加州使用者的流量導向部署於 us-central1 的微服務。新加坡使用者發出的要求會導向至 asia-southeast1 的微服務。

系統收到的使用者要求會轉送至前端微服務。安裝在具有「Front End」主機的服務 Proxy 接著會將流量導向「Shopping Cart」。安裝在具有「Shopping Cart」主機的補充 Proxy 會將流量導向至「Payments」微服務。在無 Proxy gRPC 環境中,gRPC 應用程式會處理流量管理。

全球負載平衡部署作業中的 Cloud Service Mesh。
全球負載平衡部署中的 Cloud Service Mesh (按一下即可放大)

在下列範例中,如果 Cloud Service Mesh 收到健康狀態檢查結果,指出在 us-central1 中執行 Shopping Cart 微服務的虛擬機器 (VM) 執行個體健康狀態不良,Cloud Service Mesh 會指示 Front End 微服務的 Sidecar Proxy 將流量容錯移轉至在 asia-southeast1 中執行的 Shopping Cart 微服務。由於自動調度資源已與 Google Cloud中的流量管理整合,Cloud Service Mesh 會通知 asia-southeast1 的 MIG 有額外流量,MIG 的規模便會隨之擴張。

Cloud Service Mesh 偵測到「Payments」微服務的所有後端健康狀態良好,因此指示「Shopping Cart」的 Envoy Proxy 傳送部分流量到 asia-southeast1 (上限為客戶所設容量),並將剩餘溢位到 us-central1

全球負載平衡部署作業中的 Cloud Service Mesh 容錯移轉。
在全球負載平衡部署中,使用 Cloud Service Mesh 進行容錯移轉 (按一下可放大)

Cloud Service Mesh 中的負載平衡元件

設定 Cloud Service Mesh 時,您會設定多個負載平衡元件:

  • 後端服務,其中包含設定值。
  • 健康狀態檢查,可為部署作業中的 VM 和 Google Kubernetes Engine (GKE) Pod 提供健康狀態檢查。
  • 透過服務轉送 API,您可以建立 MeshGateway 資源和 Route 資源。
  • 使用負載平衡 API 時,全域轉送規則會包含 VIP 位址、目標 Proxy 和網址對應。

xDS API 相容補充 Proxy (如 Envoy) 可執行於用戶端 VM 執行個體或是 Kubernetes Pod。Cloud Service Mesh 可做為控制層,並使用 xDS API 與每個 Proxy 直接通訊。在資料層面,應用程式會將流量傳送至轉送規則或 Mesh 資源中設定的 VIP 位址。補充 Proxy 或 gRPC 應用程式會攔截流量,並將其重新導向至適當的後端。

下圖顯示在 Compute Engine VM 或 GKE Pod 上執行的應用程式、元件,以及 Cloud Service Mesh 部署作業中的流量。顯示 Cloud Service Mesh 和 Cloud Load Balancing 資源,這些資源用於判斷流量路徑。圖表顯示舊版負載平衡 API。

要設定的 Cloud Service Mesh 資源。
待設定的 Cloud Service Mesh 資源 (按一下可放大)

後續步驟