Cloud Service Mesh 的目標 Proxy

本文件僅適用於搭配負載平衡 API 使用的 Cloud Service Mesh。我們強烈建議您使用服務路由 API 部署 Cloud Service Mesh。

設定 Cloud Service Mesh 時,您設定的其中一個資源是目標 Proxy。在 Cloud Service Mesh 中,目標 Proxy 有兩個主要用途:

  • 定義 Cloud Service Mesh 用戶端在開啟與服務相關聯的後端或端點連線時使用的通訊協定。

  • 使用轉送規則和網址對應建立轉送規則對應關係。轉送規則對應關係會提供轉送規則等額外功能,具體取決於目標 Proxy 的類型。無效的選項會在使用者介面中隱藏,或遭 API 拒絕。

目標 Proxy 類型和要求通訊協定

Cloud Service Mesh 會根據您設定的目標 Proxy 類型,為其用戶端產生不同的設定。設定目標 Proxy 類型時,Cloud Service Mesh 用戶端會使用特定的請求通訊協定。

目標 Proxy 要求通訊協定
HTTPS 用戶端啟動 HTTPS 連線
HTTP 用戶端啟動 HTTP 連線
gRPC 用戶端會啟動 gRPC 連線
TCP 用戶端啟動 TCP 連線

您可以選擇多種類型。舉例來說,應用程式可能會在處理某些服務時使用 HTTP,但在處理其他服務時使用 TCP。針對這類用途,您必須同時建立目標 HTTP Proxy 和目標 TCP Proxy。

轉送規則對應關係中的有效資源組合

為避免設定錯誤,Cloud Service Mesh 只允許您建立如下所示的轉送規則對應項目:

  • 轉送規則 > 通用目標 HTTPS Proxy > 網址對應 > 一或多個後端服務
  • 轉送規則 > 通用目標 HTTP Proxy > 網址對應 > 一或多個後端服務
  • 轉送規則 > 全域目標 gRPC Proxy > 網址對應 > 一或多個後端服務
  • 轉送規則 > 全球目標 TCP Proxy > 一個後端服務

如果您使用 Google Cloud 控制台設定目標 HTTP Proxy,系統會隱含地將目標 Proxy 設為路由規則對應項目的一部分。Google Cloud 控制台目前不支援 TCP Proxy 設定。

如果您使用 Google Cloud CLI 或 API,則需要明確設定目標 Proxy。

流量處理

以下各節將說明如何根據您使用的目標 Proxy 類型處理流量。

使用目標 HTTP 或 HTTPS Proxy

設定以 HTTP 或 HTTPS 為基礎的服務時,每個服務執行個體通常都會與 Envoy Proxy 一併部署。Cloud Service Mesh 會設定這個 Envoy Proxy。這是服務網格資料層的一部分,會按照下列方式處理流量。

Envoy Proxy 會接收傳出要求。接著,系統會將要求的目標 IP 位址和通訊埠,與參照目標 HTTP 或 HTTPS Proxy 的每個轉送規則中所設定的 IP 位址和通訊埠進行比較。如果找到相符項目,Envoy Proxy 會根據目標 Proxy 的對應網址對應評估要求。

使用目標 TCP Proxy

設定以 TCP 為基礎的服務時,每個服務執行個體通常都會與 Envoy Proxy 一併部署。Cloud Service Mesh 會設定這個 Envoy Proxy。它是服務網格資料層的一部分,會按照下列方式處理流量。

Envoy Proxy 會接收傳出要求。接著,系統會將要求的目的地 IP 位址和通訊埠,與參照目標 TCP Proxy 的每個轉送規則中所設定的 IP 位址和通訊埠進行比較。每個轉送規則都會將 TCP 流量轉送至指向預設後端服務的目標 Proxy。後端服務會指定健康狀態檢查,並決定適當的後端。

使用目標 gRPC Proxy

設定以 gRPC 為基礎的服務時,服務執行個體通常不會同時部署 Envoy 代理程式。而是由 Cloud Service Mesh 設定 gRPC 程式庫。這個程式庫是服務網格資料層的一部分,會按照下列方式處理流量。

gRPC 程式庫會將 URI 中指定的 hostname[:port] 與目標 gRPC Proxy 參照的所有網址對應項目中的主機規則進行比較。如果找到相符項目,gRPC 程式庫會根據與相符主機規則相關聯的路徑規則評估要求。

目標 Proxy 資源

如要新增、刪除、列出及取得目標 Proxy 的相關資訊,您可以使用 REST API 或 gcloud CLI。

此外,如要取得目標 Proxy 的相關資訊,您可以使用下列 gcloud 指令:

gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] list
gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] describe TARGET_PROXY_NAME

API

如需透過 REST API 使用目標 Proxy 時可用的屬性和方法說明,請參閱 Cloud Service Mesh 支援的下列資源:

gcloud CLI

如要瞭解 Google Cloud CLI,請參閱下列資源:

後續步驟