支援 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) | ✔ | ✔ |
根據可設定的負載平衡政策選取後端。 如要進一步瞭解各項內建政策,請參閱 |
|
服務復原能力
Cloud Service Mesh 支援的功能可協助您改善服務的彈性。舉例來說,您可以使用 Cloud Service Mesh 實作藍/綠部署模式、初期測試或斷路 (Envoy、gRPC)。
功能 | 支援 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 | ✔ |
後續步驟
- 如要進一步瞭解 Cloud Service Mesh,請參閱 Cloud Service Mesh 總覽。
- 如要瞭解無 Proxy gRPC 服務的用途和架構模式,請參閱「無 Proxy gRPC 服務總覽」。