Cloud Service Mesh 負載平衡

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

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

內部部署具有三項全球微服務功能:「Front End」(前端)、「Shopping Cart」(購物車) 及「Payments」(付款) 功能。每項服務都會在兩個地區 (us-central1asia-southeast1) 的代管執行個體群組 (MIG) 上執行。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 中執行購物車微服務的虛擬機器 (VM) 執行個體處於不健康狀態,Cloud Service Mesh 就會指示前端微服務的附掛程式 Proxy,將流量容錯移轉至在 asia-southeast1 中執行的購物車微服務。由於自動調度資源已與 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 資源 (按一下可放大)

後續步驟