含有網際網路網路端點群組的 Cloud Service Mesh

您可以設定 Cloud Service Mesh 使用 INTERNET_FQDN_PORT 類型的網路端點群組 (NEG)。外部服務會以其完整網域名稱 (FQDN) 和 NEG 中的通訊埠號碼表示。NEG 只能包含一個 FQDN:Port 組,而後端服務只能包含一個這類 NEG。系統會使用底層虛擬私有雲 (VPC) 網路的名稱解析順序解析 FQDN。

使用 FQDN 後端擴充 Cloud Service Mesh 服務網格

Cloud Service Mesh 服務網格可將流量路由至可透過混合式連線存取的私有服務,包括命名的內部部署、多雲端和網際網路服務。遠端服務會透過其 FQDN 參照。

透過混合式連線,將 Cloud Service Mesh 服務網格擴展至內部部署環境或多雲端位置,並使用 FQDN 後端。
透過混合連線使用 FQDN 後端,將 Cloud Service Mesh 服務網格擴展至內部或多雲端位置 (按一下即可放大)

您也可以將流量轉送至可透過公用網際網路存取的服務。

將 Cloud Service Mesh 服務網格擴充至使用 FQDN 後端的網際網路服務。
使用 FQDN 後端將 Cloud Service Mesh 服務網格擴展至網路服務 (按一下可放大)

Google Cloud 資源和架構

本節將說明使用網路 NEG 設定 Cloud Service Mesh 的資源和架構。

INTERNET_FQDN_PORT 網路端點群組

如要將流量路由至由 FQDN 參照的外部服務,請使用 INTERNET_FQDN_PORT 類型的全球網際網路 NEG。NEG 包含服務的 FQDN 和通訊埠號碼。Cloud Service Mesh 會使用 xDS 設定,將 FQDN 編入 Envoy Proxy。

Cloud Service Mesh 本身無法保證遠端端點的名稱解析和可及性。FQDN 必須能依據 Envoy 代理程式連結的 VPC 網路名稱解析順序解析,且解析的端點必須可透過 Envoy 代理程式存取。

健康狀態檢查

INTERNET_FQDN_PORT 類型的網路端點健康狀態檢查行為,與與 Cloud Load Balancing 和 Cloud Service Mesh 搭配使用的其他類型網路端點的健康狀態檢查行為不同。雖然大多數其他網路端點類型都使用 Google Cloud的集中式健康狀態檢查系統,但在多雲環境中用於端點的 NEG (INTERNET_FQDN_PORTNON_GCP_PRIVATE_IP_PORT) 則使用 Envoy 的分散式健康狀態檢查機制。

Envoy 支援下列健康狀態檢查通訊協定:

  • HTTP
  • HTTPS
  • HTTP/2
  • TCP

您可以使用 Compute Engine API 設定健康狀態檢查。

DNS 考量事項

關於 DNS,有兩個不同的考量因素:

  • 代管外部服務資源記錄的 DNS 伺服器。
  • 用於將 Envoy 代理程式設為使用 DNS 進行連線管理的模式。

Cloud DNS 伺服器

您可以建立 Cloud DNS 代管不公開區域,以便在 Google Cloud 專案中代管 DNS 記錄。您也可以使用 Cloud DNS 的其他功能 (例如轉送區域),從內部部署系統 DNS 伺服器擷取記錄。

Envoy DNS 模式

Envoy DNS 模式 (也稱為「服務探索」) 會指定 Envoy Proxy 如何使用 DNS 記錄來管理輸出連線。Cloud Service Mesh 會將 Envoy 設為使用嚴格 DNS 模式。嚴格 DNS 模式可為所有已解析的端點啟用負載平衡功能。它會遵循健康狀態檢查狀態,並排空連線至不健康或不再使用 DNS 解析的端點。您無法變更這個模式。

如要進一步瞭解服務探索,請參閱 Envoy 說明文件。

連線和路由

如果您要將流量轉送至私人服務,請參考下列基礎網路連線的相關規定:

  • 使用 Cloud VPN 或 Cloud Interconnect,即可建立 VPC 網路與內部部署資料中心或第三方公開雲之間的混合式連線。
  • 正確設定 VPC 防火牆規則和路徑,以便建立從 Envoy 到私人服務端點的雙向可及性,以及 (如適用) 到內部部署 DNS 伺服器的可及性。
  • 如要成功執行區域高可用性容錯,必須啟用全域動態路由。詳情請參閱動態轉送模式

如果您要將流量轉送至可透過網際網路存取的外部服務,則必須符合下列規定:

  • 虛擬私有雲網路中的用戶端虛擬機器 (VM) 執行個體必須具有外部 IP 位址或 Cloud NAT。
  • 必須有預設路徑,才能將流量傳送至網際網路。

在上述兩種情況下,流量都會使用 VPC 網路的轉送。

安全性

FQDN 後端與 Cloud Service Mesh 的安全性功能和 API 相容。針對外部服務的傳出連線,您可以使用用戶端 TLS 政策,在 SNI 標頭中設定 FQDN。

限制和注意事項

  • Cloud Service Mesh 不支援 INTERNET_IP_PORT 類型的網際網路 NEG。
  • FQDN 後端需要 Envoy 1.15.0 以上版本。
  • 使用 Google Cloud CLI 或 REST API 設定 Cloud Service Mesh。不支援使用 Google Cloud 主控台進行端對端設定。
  • FQDN 後端僅支援 Envoy。不支援無 Proxy 的 gRPC。
  • 當您將 NEG 類型 INTERNET_FQDN_PORT 與 Cloud Service Mesh 搭配使用時,系統會使用 Envoy 的分散式健康檢查機制,對遠端端點執行健康檢查。每當新增新的遠端端點,所有 Envoy 代理程式都會開始獨立檢查其健康狀態。

    同樣地,當新的 Envoy 代理程式加入網格時,就會開始檢查所有遠端端點。因此,視部署作業中的 Envoy Proxy 和遠端端點數量而定,產生的健康狀態檢查網格可能會造成大量網路流量,並對遠端端點造成不當負載。您可以選擇不設定健康狀態檢查。

  • Google Cloud FQDN 後端控制台中不會顯示健康狀態檢查狀態。

  • 不支援使用 UDP、SSL 和 gRPC 通訊協定的健康狀態檢查。

  • 不支援下列健康狀態檢查選項:

    • HTTP/HTTP2/HTTPS 健康狀態檢查
      • --proxy-header
      • --response
    • TCP 健康狀態檢查
      • --proxy-header
      • --request
      • --response

後續步驟