標準服務

注意:Cloud Service Mesh 1.6.8 以上版本會自動支援標準服務。

Cloud Service Mesh 中的標準服務可讓您將分散式生產環境工作負載分組為單一邏輯服務,以便統一監控及管理。您可以觀察合併的遙測資料、定義服務等級目標,以及追蹤多個叢集、平台和設定的修訂版本。

什麼是標準服務?

Cloud Service Mesh 1.6.8 支援 Canonical Service,這是一種概念和架構模型,可將生產環境工作負載表示為單一服務,方便觀察及管理。這些工作負載可能跨越多個叢集、不同的後端平台,以及不同的結構定義和設定。

Kubernetes 使用者:Canonical Service 大致上類似於 Kubernetes 的「應用程式」概念和 Application CRD。

無伺服器使用者:標準服務與 App Engine 服務和 Cloud Run 服務的概念非常相似。兩者唯一的差異在於,Google 無伺服器服務本質上是區域性的,而標準服務則是全球 / 多區域抽象化。

舉例來說,下列情境都說明瞭您可能會參照標準服務的方式:

  • 服務中斷。
  • 服務同時在地端和公有雲上執行。
  • 部署服務的新修訂版本。
  • 服務 Foo 傳送的流量過多,可能超出我們的容量。

標準服務存在於單一網格中,在 Cloud Service Mesh 中,這也表示標準服務在機群和專案中是獨一無二的 (所有這些都與網格一一對應)。 Google Cloud

特定工作負載只能屬於一個標準服務。

您可以從定義標準服務的工作負載群組中,判斷標準服務的完整範圍,包括:

  • 主機名稱和 IP 位址
  • 網路
  • 網路和安全性政策
  • 路由和負載平衡
  • VM 和容器映像檔
  • 實體或虛擬基礎架構
  • 地理區域
  • CI/CD 系統
  • 原始碼
  • 遙測
  • 服務等級目標和快訊

您可以在「服務」頁面查看資訊主頁,瞭解各項服務的運作詳細資料。

標準服務規定和限制

只有 Cloud Service Mesh 1.6.8 以上版本支援 Canonical Service。

每個標準服務都存在於單一 Kubernetes/Istio 命名空間內,且無法跨越命名空間界線。

您必須為 Canonical Service 指定在父項命名空間中不重複的名稱。詳情請參閱定義標準服務。

標準服務可跨多個叢集和區域存在。雖然可以依叢集和區域細分資源和遙測資料,但這些並非決定服務範圍或獨特性的因素。

因此,標準服務的專屬身分是由下列項目決定:

mesh id + namespace + canonical name.

修訂版本

修訂版本是指某項服務的小幅度變更,您可以根據服務的不同「版本」加以區別。

為個別工作負載加上「標準修訂版本」標籤,區分標準服務的修訂版本。這個標籤是您定義的任意字串,在某些情況下,系統可能會自動設定標籤,但您或部署服務的 CI/CD 系統必須套用標籤。如需設定這個標籤的指引,請參閱「定義標準服務」。

請注意,多個修訂版本可同時處於正式環境。同時執行多個修訂版本最常用於完成下列事項:

  • 逐步在服務的所有執行個體中推出新二進位檔、新設定或兩者。在這種情況下,新舊修訂版本都會在轉換期間上線。
  • 「A/B 測試」或「即時實驗」:向部分下游呼叫者顯示兩種不同版本的服務,以測試變更的影響。

後續步驟