服務探索
Cloud Service Mesh 提供服務和端點探索功能。這些功能可讓您將以服務端點執行程式碼的虛擬機器 (VM) 執行個體和容器執行個體分組。
Cloud Service Mesh 會監控這些服務,以便與客戶分享最新的健康檢查資訊。因此,當您的某個應用程式使用其 Cloud Service Mesh 用戶端 (例如 Envoy 附屬 Proxy 或無 Proxy 的 gRPC 應用程式) 傳送要求時,就能從服務的最新資訊中受益。
在 Cloud Service Mesh 的情況下,用戶端是指在 VM 或容器上執行的應用程式程式碼,用於編寫要傳送至伺服器的要求。伺服器是接收這類要求的應用程式程式碼。Cloud Service Mesh 用戶端是連線至 Cloud Service Mesh 的 Envoy、gRPC 或其他 xDS 用戶端,也是資料層的一部分。
在資料層中,Envoy 或 gRPC 會執行以下操作:
- 它會檢查要求,並將要求與後端服務 (您在部署期間設定的資源) 進行比對。
- 在要求配對後,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 上的應用程式向 payments.example.com
傳送 HTTP 要求時,Cloud Service Mesh 用戶端就會知道這項要求的目的為 payments
服務。
當您將 Cloud Service Mesh 與無 Proxy gRPC 服務搭配使用時,服務探索的運作方式也類似。不過,做為 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 支援附屬 Proxy 模型。在這個模型中,當應用程式將流量傳送至目的地時,系統會攔截流量,並將其重新導向至應用程式執行主機上補充 Proxy 的通訊埠。補充 Proxy 會決定如何負載平衡流量,然後將流量傳送至目的地。
您可以使用 Cloud Service Mesh 和服務路由 API,自動管理流量攔截作業。
後續步驟
- 如要瞭解 Cloud Service Mesh 如何為使用 Sidecar Proxy 的內部微服務提供全球負載平衡,請參閱「Cloud Service Mesh 負載平衡」。
- 如要進一步瞭解 Cloud Service Mesh,請參閱 Cloud Service Mesh 總覽。