服務探索

Cloud Service Mesh 提供服務和端點探索功能,這些功能可讓您將執行程式碼的虛擬機器 (VM) 執行個體和容器執行個體,分組為服務的端點

Cloud Service Mesh 會監控這些服務,以便與用戶端分享最新的健康檢查資訊。因此,當應用程式使用 Cloud Service Mesh 用戶端 (例如 Envoy Sidecar Proxy 或無 Proxy 的 gRPC 應用程式) 傳送要求時,可獲得服務的最新資訊。

在 Cloud Service Mesh 的脈絡中,「用戶端」是指在 VM 或容器上執行的應用程式碼,會制定要傳送至伺服器的要求。伺服器是接收這類要求的應用程式程式碼。Cloud Service Mesh 用戶端是 Envoy、gRPC 或其他 xDS 用戶端,連線至 Cloud Service Mesh,且屬於資料層。

在資料層面,Envoy 或 gRPC 會執行下列操作:

  1. 這項服務會檢查要求,並將要求與您在部署期間設定的後端服務資源相符。
  2. 要求比對完成後,Envoy 或 gRPC 會套用先前設定的任何流量或安全性政策,選擇後端或端點,然後將要求導向該後端或端點。

服務探索

Cloud Service Mesh 提供服務探索功能,設定 Cloud Service Mesh 時,您會建立後端服務。您也可以定義轉送規則,指定如何將輸出要求 (由應用程式程式碼傳送並由 Cloud Service Mesh 用戶端處理的要求) 比對至特定服務。Cloud Service Mesh 用戶端處理符合規則的要求時,可以選擇應接收要求的服務。

例如:

  • 您有一個執行應用程式的 VM。這個 VM 具有 Envoy 補充 Proxy,可連線至 Cloud Service Mesh,並代表應用程式處理輸出要求。
  • 您已設定名為 payments 的後端服務。這個後端服務有兩個網路端點群組 (NEG) 後端,指向執行 payments 服務程式碼的各種容器執行個體。
  • 您已設定 Mesh 資源,定義名為 sidecar-mesh 的網格。
  • 您已設定 Route 資源,定義後端服務 payments 和主機名稱 helloworld-gce 的流量目的地。

完成這項設定後,當應用程式 (位於 VM 上) 將 HTTP 要求傳送至 payments.example.com 時,Cloud Service Mesh 用戶端會知道這項要求是傳送至 payments 服務。

搭配無 Proxy gRPC 服務使用 Cloud Service Mesh 時,服務探索的運作方式也類似。不過,做為 Cloud Service Mesh 用戶端的 gRPC 程式庫只會取得您指定 xDS 解析器的服務相關資訊。根據預設,Envoy 會取得 Envoy 啟動程序檔中指定的虛擬私有雲 (VPC) 網路上設定的所有服務相關資訊。

端點探索

用戶端可透過服務探索功能瞭解您的服務。端點探索功能可讓用戶端瞭解執行程式碼的執行個體。

建立服務時,您也會指定該服務的後端。這些後端可以是代管執行個體群組 (MIG) 中的 VM,也可以是 NEG 中的容器。Cloud Service Mesh 會監控這些 MIG 和 NEG,以便瞭解執行個體和端點的建立及移除時間。

Cloud Service Mesh 會持續與用戶端分享這些服務的最新資訊。這項資訊可讓用戶端避免將流量傳送至已不存在的端點。此外,用戶端也能藉此瞭解新端點,並充分運用這些端點提供的額外容量。

除了將端點新增至 MIG 或 NEG,以及設定 Cloud Service Mesh 之外,您不需要任何額外設定,即可透過 Cloud Service Mesh 啟用服務探索功能。

在 Cloud Service Mesh 中攔截 Sidecar Proxy 流量

Cloud Service Mesh 支援 Sidecar Proxy 模型。在這個模型中,當應用程式將流量傳送至目的地時,流量會遭到攔截,並重新導向至應用程式所在主機的補充 Proxy 通訊埠。補充 Proxy 會決定如何對流量進行負載平衡,然後將流量傳送至目的地。

使用 Cloud Service Mesh 和服務路徑 API 時,系統會自動管理流量攔截作業。

後續步驟