Cloud Service Mesh 總覽
Cloud Service Mesh 是服務網格,可在支援的 GKE Enterprise 平台 Google Cloud和跨平台使用。這項服務支援在各種運算基礎架構上執行的服務。Cloud Service Mesh 由專為 Google Cloud、開放原始碼或兩者設計的 API 控制。
如果您是 Cloud Service Mesh 新手,或是 Anthos 服務網格或 Traffic Director 的現有客戶,這份文件都適合您。
什麼是服務網格?
服務網格是一種架構,可讓您在服務之間進行受管理、可觀察且安全的通訊,因此您可以在所選基礎架構上,更輕鬆地建立由多項微服務組成的穩固企業應用程式。服務網格提供功能強大且一致的工具,可管理執行服務時的常見需求 (例如監控、網路和安全性),讓服務開發人員和營運人員專心為使用者建立及管理出色的應用程式。
在架構上,服務網格由一或多個控制層和資料層組成。服務網格會監控服務的所有傳入和傳出流量。在 Kubernetes 中,系統會透過附屬容器模式,將 Proxy 部署至網格中的微服務。在 Compute Engine 上,您可以在 VM 上部署 Proxy,或使用無 Proxy 的 gRPC 做為資料層。
這個模式會將應用程式或商業邏輯與網路功能分離,讓開發人員專注於業務所需的功能。服務網格也能讓營運團隊和開發團隊的工作彼此分離。
將應用程式做為微服務建構具備許多優點。不過,工作負載可能會隨著規模擴大,變得既複雜又零碎。服務網格有助於解決分散問題,並簡化微服務管理作業。
什麼是 Cloud Service Mesh?
Cloud Service Mesh 是 Google 針對 Google Cloud和支援的 GKE Enterprise 環境提供的解決方案。
- 開啟 Google Cloud:Cloud Service Mesh 會提供專屬 API,適用於執行工作負載的運算基礎架構。
- 對於 Compute Engine 工作負載,Cloud Service Mesh 會使用Google Cloud專屬的服務轉送 API。
- 對於 Google Kubernetes Engine (GKE) 工作負載,Cloud Service Mesh 會使用開放原始碼 Istio API。
- 關閉 Google Cloud:使用 Distributed Cloud 或 GKE Multicloud 時,Cloud Service Mesh 支援 Kubernetes 工作負載的 Istio API。
無論開啟或關閉 Google Cloud,Cloud Service Mesh 都能讓您管理、觀察及保護服務,不必變更應用程式程式碼。
Cloud Service Mesh 可簡化服務交付程序,從流量管理、網格遙測到服務間的通訊安全防護都包含在內,因此能減輕營運和開發團隊的工作負擔。Google 的全代管服務網格可讓您管理複雜的環境,並享有環境提供的所有優勢。
功能
Cloud Service Mesh 提供一系列流量管理、觀測和遙測,以及安全防護功能。
流量管理
Cloud Service Mesh 可控管網格中服務之間的流量、進入網格的流量 (輸入),以及流向外部服務的流量 (輸出)。您可設定及部署資源,在應用程式 (L7) 層管理這類流量。舉例來說,您可以執行下列操作:
- 使用服務探索功能。
- 設定服務之間的負載平衡。
- 建立初期測試和藍綠部署。
- 精細控管服務的路由。
- 設定斷路器。
Cloud Service Mesh 會依名稱和各自的端點,維護網格中所有服務的清單。這份清單用於管理流量流動 (例如 Kubernetes Pod IP 位址,或代管執行個體群組中 Compute Engine VM 的 IP 位址)。使用這項服務登錄檔,並與服務並行執行 Proxy,網格就能將流量導向適當的端點。無 Proxy 的 gRPC 工作負載也可以與使用 Envoy Proxy 的工作負載並行使用。
觀測能力深入分析
Google Cloud 控制台中的 Cloud Service Mesh 使用者介面可提供服務網格洞察資料。系統會自動為透過 Istio API 設定的工作負載產生這些指標。
- 網格內 GKE 叢集的 HTTP 流量服務指標和記錄檔會自動擷取至 Google Cloud。
- 預先設定的服務資訊主頁會提供您瞭解服務所需的資訊。
- 透過 Cloud Monitoring、Cloud Logging 和 Cloud Trace 提供的深入遙測資料,您可以深入瞭解服務指標和記錄。您可以根據各種屬性篩選及區隔資料。
- 服務間的關係可協助您一目瞭然服務間的相依關係,以及誰與各項服務建立連線。
- 您不僅能快速掌握服務的通訊安全狀態,還能瞭解服務與其他服務的關係。
- 服務等級目標 (SLO) 可讓您深入瞭解服務的健康狀態。您可以自行定義服務水準目標,並根據服務健康狀態的標準設定快訊。
如要進一步瞭解 Cloud Service Mesh 的可觀測性功能,請參閱可觀測性指南。
安全防護優勢
Cloud Service Mesh 提供多項安全優點。
- 降低遭人利用竊取的憑證進行重播或冒用攻擊的風險。 Cloud Service Mesh 依賴相互 TLS (mTLS) 憑證驗證對等互連,而非 JSON Web Token (JWT) 等不記名權杖。
- 確保傳輸中的資料經過加密。使用 mTLS 進行驗證,也能確保所有 TCP 通訊在傳輸過程中都會加密。
- 無論用戶端網路位置和應用程式層級憑證為何,都能降低未經授權的用戶端存取含有機密資料服務的風險。
- 降低生產網路中使用者資料外洩的風險。您可以確保內部人員只能透過授權的用戶端存取機密資料。
- 識別哪些用戶端存取了含有私密資料的服務。除了 IP 位址,Cloud Service Mesh 存取記錄也會擷取用戶端的 mTLS 身分。
- 所有叢集內控制層元件和 Proxy 都是以通過 FIPS 140-2 驗證的加密模組建構而成。
如要進一步瞭解 Service Mesh 的安全防護優勢和功能,請參閱安全性指南。
部署選項
Cloud Service Mesh 提供下列部署選項:
- 在 Google Cloud
- 代管 Cloud Service Mesh - 代管 GKE 的控制層和資料層 (建議)
- 代管 Cloud Service Mesh - 適用於 Compute Engine 的代管控制層和資料層,並搭配 VM (建議使用)
- 適用於 GKE 的叢集內控制層,搭配 Istio API (不建議使用)
- 關閉 Google Cloud
- 適用於 Kubernetes 的叢集內控制層,並提供 Istio API
代管 Cloud Service Mesh
代管 Cloud Service Mesh 包含所有基礎架構的代管控制層,以及 GKE 的代管資料層。採用代管 Cloud Service Mesh 服務,即表示 Google 會代您處理升級、資源調度和安全性工作,盡量減少使用者手動維護作業。包括控制層、資料層和相關資源。
導入資料層
如果您使用 Google Cloud API,資料平面可由 Envoy 代理程式或無代理程式的 gRPC 應用程式提供。如果您要更新現有應用程式,採用 Sidecar 架構即可整合至網格,不必變更應用程式。如要避免執行 Sidecar 的額外負擔,可以更新應用程式以使用 gRPC。
Envoy Proxy 和無 Proxy gRPC 都會使用 xDS API 連線至控制層。如果您使用無 Proxy 的 gRPC,應用程式可選擇支援的語言,包括 Go、C++、Java 和 Python。
如果您使用開放原始碼 Istio API,資料層是由 Envoy Proxy 提供。
控制層實作
Cloud Service Mesh 控制層取決於您的設定是否開啟 Google Cloud ,以及您是否為新客戶。
現有使用者的控制層實作
- 如果設定為關閉 Google Cloud,您使用的就是 Cloud Service Mesh 的叢內非受管理控制層。詳情請參閱「叢內控制層支援的功能」。
- 如果您是 Google Cloud的 Anthos 服務網格使用者,則會使用 Istio API。詳情請參閱「使用 Istio API 支援的功能 (受管理控制層) 」。
- 如果您是 Traffic Director 使用者,則會透過 Google Cloud API 使用 Cloud Service Mesh 的代管控制層。詳情請參閱「Cloud Service Mesh with Google Cloud APIs supported features」。
如要判斷目前的控制層,請參閱「識別控制層實作」。如要進一步瞭解控制層和控制層遷移作業,請參閱「適用於續約客戶的受管理控制層總覽」。
新使用者的控制層實作
- 如果您打算進行關閉設定,則選擇的是 Cloud Service Mesh 的叢集內非代管控制層。Google Cloud 詳情請參閱「叢集內控制層支援的功能」。
- 如果您打算在 Kubernetes 上進行Google Cloud 設定,您會選擇 Istio API,但控制層會使用 Traffic Director 實作項目,除非在「決定控制層實作項目」一文中詳述的特定情況下。詳情請參閱「使用 Istio API (受管理控制層) 支援的功能」。
- 如果您打算在 Compute Engine VM 上進行設定,控制平面會使用全域多租戶控制平面,也就是 Traffic Director 實作。Google Cloud 詳情請參閱「Cloud Service Mesh with Google Cloud APIs supported features」。
控制層遷移
如果您是 Anthos 服務網格的現有客戶,且使用 Istio API,叢集就會開始遷移至 Traffic Director 控制層。您仍可繼續使用 Istio API 進行設定。
如要判斷叢集是否仍使用 Istio 控制層,或已遷移至新的全域控制層,請參閱「識別控制層實作方式」。
後續步驟
- 如果您是續用客戶,請參閱「為續用客戶提供的受管理控制層」。
- 如果您打算使用 GKE 設定,請參閱「佈建控制層」。
- 如果您打算使用 Compute Engine 和 VM 進行設定,請參閱「準備透過 Envoy 和無 Proxy 工作負載設定服務路由 API」。