轉送規則對應關係總覽

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

轉送規則對應關係包含下列項目:

為 Cloud Service Mesh 建立及設定這些資源時,Cloud Service Mesh 會使用這些值建立要傳送至資料層的設定,其中包括 Envoy Proxy 和無 Proxy 的 gRPC 應用程式等 xDS 用戶端。資料層接著會根據這項設定處理流量。

轉送規則會參照目標 Proxy,並具有 IP 位址和通訊埠。對於 Cloud Service Mesh 部署,轉送規則的負載平衡配置必須設為 INTERNAL_SELF_MANAGED。目標 Proxy 會參照網址對應。這三個資源會組合成轉送規則對應關係。

如果轉送規則參照的目標 gRPC Proxy 將 validateForProxyless 欄位設為 TRUE,則該規則的 IP 位址必須設為 0.0.0.0。將 validateForProxyless 設為 TRUE 時,系統會拒絕指定 0.0.0.0 以外 IP 位址的設定。

轉送規則對應關係會定義流量從用戶端傳送至服務網格內伺服器的方式。

支援的目標 Proxy 類型

Cloud Service Mesh 支援下列目標 Proxy 類型:

  • 目標 HTTP Proxy:您會在用戶端和伺服器傳送或接收 HTTP 或 HTTP/2 流量時設定此 Proxy。
  • 目標 HTTPS Proxy:在用戶端和伺服器傳送或接收 HTTPS 流量時設定。使用 Envoy Proxy 設定服務安全性時,必須使用此參數。
  • 目標 TCP Proxy:在用戶端和伺服器傳送或接收 TCP 流量時,您會設定這項 Proxy。
  • 目標 gRPC Proxy:您會在用戶端和伺服器傳送或接收 gRPC 流量時設定此 Proxy。目標 gRPC Proxy 包含 validateForProxyless 欄位,在您部署無 Proxy gRPC 服務時,會設為 TRUE

使用 Envoy 補充 Proxy 轉送流量

當您使用 Cloud Service Mesh 搭配 Envoy 附加 Proxy 時,用戶端要求會按照下列方式進行路由:

  • 網路堆疊會攔截要求,並將其重新導向至 Envoy 附屬 Proxy。
  • Envoy 附加元件 Proxy 會查看要求的 IP 位址和通訊埠。
  • 系統會根據負載平衡配置設為 INTERNAL_SELF_MANAGED 的任何轉送規則中指定的 IP 位址和通訊埠,檢查 IP 位址和通訊埠組合。
  • 如果發現轉送規則含有相符的 IP 位址和通訊埠,Envoy 會查看轉送規則參照的目標 HTTP Proxy 或目標 gRPC Proxy。
  • Envoy 會檢查目標 Proxy 參照的網址對應。
  • Envoy 會根據網址對應中指定的規則轉送要求。

如要瞭解如何使用目標 TCP Proxy 轉送流量,請參閱「使用 Cloud Service Mesh 轉送 TCP 流量」一文。

使用無 Proxy gRPC 應用程式進行流量路由

無 Proxy gRPC 應用程式的行為則不同。設定 gRPC 用戶端時,您會為用戶端需要聯絡的服務指定目標 URI。這個 URI 會使用 xds 名稱解析器配置和 hostname:port 格式,例如 xds:///example.hostname:8080

當無 Proxy gRPC 用戶端連線至 Cloud Service Mesh 時,Cloud Service Mesh 會傳送與服務相對應的資訊,如下所示:

  • Cloud Service Mesh 會尋找負載平衡配置設為 INTERNAL_SELF_MANAGED 的轉送規則,找出通訊埠與目標 URI 中指定通訊埠相符的轉送規則。
  • Cloud Service Mesh 會為每個轉送規則找出目標 gRPC Proxy 或目標 HTTP Proxy。
  • Cloud Service Mesh 會找出這些目標 gRPC Proxy 或目標 HTTP Proxy 參照的網址對應。
  • Cloud Service Mesh 會檢查網址對應中的主機規則 (同樣採用 hostname[:port] 格式),並尋找相符項目。
  • 找到相符項目後,Cloud Service Mesh 會將路由規則和服務資訊傳回給 gRPC 用戶端。

如果找到多個相符項目,則行為未定義,可能會導致無法預測的行為。這通常會發生在符合下列兩個條件時:

  • 多個網址對應項目使用相同的主機名稱。
  • 使用負載平衡配置 INTERNAL_SELF_MANAGED 的多個轉送規則指定相同的通訊埠。

因此,我們建議您不要在多個網址對應中重複使用相同的主機名稱,因為這些網址對應會被指定相同通訊埠的轉送規則參照。

後續步驟