支援 Google Cloud API 的 Cloud Service Mesh 功能

本文將概要說明 Cloud Service Mesh 提供的功能。

Cloud Service Mesh 包含應用程式、與 xDS 相容的資料層 (開放原始碼 Envoy Proxy 或 gRPC 無 Proxy 資料層),以及 Cloud Service Mesh 做為控制層。

在下表中,如果值為「不適用」,表示該功能與特定 Cloud Service Mesh 設定不相容,因此無法支援。如果是空白空間,且沒有勾號或 N/A,表示系統不支援該功能。

部分功能僅適用於負載平衡 API。我們強烈建議您使用 服務路由 API,並不要使用負載平衡 API 建立新的部署。

支援的 xDS 版本

Cloud Service Mesh 會使用開放原始碼 xDS 控制層 API 設定 Envoy 和無 Proxy gRPC 用戶端。這些用戶端會代表應用程式程式碼執行動作,提供 Cloud Service Mesh 的應用程式網路功能。

僅支援 xDS 第 3 版。如果您使用的是 xDS v2,請遷移至 xDS v3。如要瞭解如何遷移,請參閱「從 xDS v2 遷移至 xDS v3」。

可執行網格服務的平台

您可以在下列平台上執行應用程式,並將應用程式納入 Cloud Service Mesh 設定的全球服務中介。

功能 支援
Compute Engine 虛擬機器 (VM) 執行個體
Google Kubernetes Engine (GKE) 容器執行個體
Compute Engine 容器執行個體上的 Kubernetes

服務管理

Cloud Service Mesh 設定的網格中服務可享有下列優點:

  • 服務探索。當網格中的應用程式想要連線至其他應用程式時,可以依名稱呼叫該服務。

  • 後端自動調度資源功能。執行應用程式程式碼的執行個體會根據您的需求,動態調高或調低。

  • 自動端點註冊。建立或移除新執行個體時,系統會自動將這些執行個體與您的服務建立關聯。

功能 支援
為 Compute Engine VM 自動部署補充 Proxy
為 GKE Pod 自動插入補充 Proxy
根據主機名稱探索服務
根據 CPU 使用率自動調度執行個體
根據流量負載/服務容量自動調度執行個體
(僅限代管執行個體群組 (或 MIG) 中的 Compute Engine VM)
根據可設定的健康狀態檢查自動修復執行個體
自動註冊 Compute Engine VM 端點
自動註冊 GKE 容器執行個體/Pod 的端點
可透過程式輔助方式新增或移除端點的 API

資料層流量的端點

微服務會使用資料層,存取網格內和網格外的服務。Cloud Service Mesh 可讓您將應用程式邏輯與網路邏輯分開,讓應用程式只需將要求傳送至資料層 (例如與應用程式一同執行的側邊代理程式)。資料處理層會將要求傳送至正確的端點。

在下表中,標示為位於網格中的應用程式,是指使用 Cloud Service Mesh 管理的資料層與其他服務通訊的應用程式。這些應用程式可以將流量傳送至中介網內服務和中介網外的服務。

功能 支援
網格中的 VM 型應用程式
網格中的容器式應用程式
位於網格外部的 VM 型應用程式
位於網格外部的容器式應用程式
在內部部署資料中心執行的應用程式
多雲端環境中的應用程式

資料層拓撲

在服務網格模型中,應用程式會使用資料層進行通訊。這個資料平面通常包含與應用程式一併部署的側邊代理程式。Cloud Service Mesh 具備高度彈性,可支援符合服務網路需求的資料平面拓樸。

功能 支援
與應用程式一併執行的 Sidecar Proxy
無 Proxy gRPC 應用程式
中介 Proxy 可連結網格中的兩個應用程式
位於網格邊界的 Edge Proxy
跨多個 GKE 叢集和/或多個區域中的 Compute Engine VM 的 Mesh

程式輔助、API 導向設定

所有設定都會透過我們的 REST API 和即用型資訊主頁公開,讓您在大型團隊中自動化變更,並透過程式管理變更。部分功能無法透過 Google Cloud 控制台設定。

功能 支援
REST API
Google Cloud 控制台
Google Cloud CLI
Cloud Deployment Manager
Terraform 支援

無 Proxy gRPC 應用程式的語言支援

您可以使用下列程式設計語言,建立可與 Cloud Service Mesh 搭配使用的無 Proxy gRPC 應用程式。GitHub 列出了各種 gRPC 實作和版本支援的服務網格功能。

語言 支援
Java
Go
C++
Python
Ruby
PHP
節點

要求通訊協定

應用程式可使用以下要求通訊協定,透過 Cloud Service Mesh 所設定的資料層進行通訊。

功能 支援
HTTP
HTTPS
HTTP/2
TCP
gRPC

服務安全性

Cloud Service Mesh 支援下列服務安全性設定。

功能 Envoy gRPC
使用 GKE Pod 的 TLS
搭配 GKE Pod 使用 mTLS
存取權控管和授權

路由和流量管理

Cloud Service Mesh 支援進階流量管理政策,可用於引導、分割及調整流量,讓流量順利通過資料層。

無 Proxy gRPC 服務無法使用部分進階流量管理功能,而目標 TCP Proxy 資源則無法使用任何進階流量管理功能。

當 Cloud Service Mesh 處理 TCP (非 HTTP(S)) 流量時,不支援下列功能。

功能 支援 Envoy Proxy,且已設定為處理 HTTP(S) 或 gRPC 流量 支援無 Proxy gRPC
根據下列項目,以後置字串/前置字串/完整字串/規則運算式比對結果,進行 HTTP/第 7 層要求路由:
• 主機名稱
• 路徑
• 標頭
• 方法 不適用
• Cookie
• 要求參數 不適用
錯誤植入
可設定的逾時時間 不適用
請參閱「串流時間長度上限」一節。
重試
除了「每個重試的逾時時間」
重新導向
URI 重寫
要求/回應標頭轉換
流量拆分
流量鏡像
離群值偵測
斷路機制
僅限 maxRequests
串流時間長度上限

負載平衡

您可以設定進階負載平衡方法和演算法,以便在服務、後端群組 (執行個體群組或網路端點群組) 和個別後端或端點層級進行負載平衡。詳情請參閱「後端服務總覽」和「進階負載平衡總覽」。

功能 支援 Envoy Proxy,且已設定為處理 HTTP(s)、TCP 或 gRPC 流量 支援無 Proxy gRPC
根據地區選取後端 (執行個體群組或網路端點群組) (優先選擇最近且後端容量正常的地區)
使用費率 (每秒要求數) 平衡模式的後端選取方式。
不支援 TCP (非 HTTP(S)) 流量。
根據使用率平衡模式選取後端 (僅限 Compute Engine 執行個體群組中的 VM)
每個後端可設定的最大容量 (僅限 Compute Engine 和 GKE)

根據可設定的負載平衡政策選取後端。

如要進一步瞭解各項內建政策,請參閱 localityLbPolicy

  • 使用單一內建政策,請選擇下列任一選項:

    • 循環制
    • 最少要求
    • 環形雜湊
    • 隨機
    • 原始目的地
    • Maglev

服務復原能力

Cloud Service Mesh 支援的功能可協助您改善服務的彈性。舉例來說,您可以使用 Cloud Service Mesh 實作藍/綠部署模式、初期測試或斷路 (EnvoygRPC)。

功能 支援 Envoy Proxy,且已設定為處理 HTTP(s)、TCP 或 gRPC 流量 支援無 Proxy gRPC
根據以權重為準的流量分配機制選取服務
斷路機制
僅限 maxRequests

服務和後端容量管理

Cloud Service Mesh 會考量服務和後端容量,確保服務後端的流量分配最佳化。Cloud Service Mesh 會與 Google Cloud 基礎架構整合,自動收集容量資料。您也可以手動設定容量。

功能 支援
自動追蹤代管執行個體群組 (MIG) 中 VM 執行個體的後端容量和 CPU 使用率。
根據要求頻率,為 MIG 和網路端點群組 (NEG) 中的 VM 和容器執行個體設定手動容量和覆寫值。
手動容量排除。

容錯移轉

企業工作負載通常會依賴高可用性部署作業,確保服務的正常運作時間。Cloud Service Mesh 會啟用多區/多區域備援機制,支援這類部署作業。

功能 支援
自動容錯移轉至同一區域內具有健康後端容量的其他可用區。
自動將容錯移轉至容量正常的最近區域。

健康狀態檢查

Cloud Service Mesh 支援集中式健康狀態檢查,可判斷後端的健康狀態。

如需參考資訊,請參閱「健康狀態檢查總覽」。

功能 支援
gRPC 健康狀態檢查
HTTP 健康狀態檢查
HTTPS 健康狀態檢查
HTTP/2 健康狀態檢查
TCP 健康狀態檢查

可設定的健康狀態檢查:

  • 通訊埠
  • 檢查時間間隔
  • 逾時
  • 健康和不良健康狀態判定門檻
可設定的要求路徑 (HTTP、HTTPS、HTTP/2)
可設定的要求字串或路徑 (TCP 或 SSL)
可設定的預期回應字串

觀測能力

觀測工具提供監控、偵錯和效能資訊,協助您瞭解服務網格。下列功能會在預設情況下提供,或在資料層中設定。應用程式程式碼不需要採取任何特別的動作,即可產生這類可觀察性資料。

無 Proxy gRPC 服務可使用服務健康情況資訊主頁,但您無法設定資料層記錄和追蹤功能。Cloud Service Mesh 無法設定 gRPC 應用程式的記錄和追蹤功能。您可以按照疑難排解部分中的指示,或在開放原始碼網站上找到的 gRPC 指南,啟用記錄和追蹤功能。舉例來說,如要在無 Proxy 的 gRPC 服務中啟用指標收集和追蹤功能,您可以使用 Opencensus

功能 支援 Proxy 支援無 Proxy gRPC 服務
服務健康狀態資訊主頁
資料層記錄
資料層追蹤

工作階段相依性

用戶端與伺服器之間的通訊通常會涉及多個連續要求。在這種情況下,將連續的用戶端要求轉送至相同的後端或伺服器會很有幫助。Cloud Service Mesh 提供可設定的選項,可盡力將來自特定用戶端的要求傳送至同一個後端,前提是後端的健康狀態良好且具有容量。詳情請參閱「後端服務總覽」。

功能 支援 HTTP(S) Proxy 支援 TCP Proxy 支援無 Proxy gRPC 服務
用戶端 IP 位址
HTTP Cookie 不適用
HTTP 標頭 不適用
產生的 Cookie (在首次要求時設定用戶端 Cookie) 不適用

網路拓撲

Cloud Service Mesh 支援常見的 Google Cloud 網路拓撲。

功能 支援
Google Cloud 專案中的單一網路
Google Cloud 專案中的多個網格
Google Cloud 專案中的多個閘道
共用虛擬私有雲 (單一網路可供多個專案共用) Google Cloud

如要進一步瞭解 Cloud Service Mesh 如何支援共用虛擬私人雲端,請參閱「限制」一節。

法規遵循

Cloud Service Mesh 符合下列標準。

法規遵循認證 支援
HIPAA
ISO 27001、ISO 27017、ISO 27018
SOC1、SOC2、SOC3
PCI DSS

後續步驟