標準服務
注意:Cloud Service Mesh 1.6.8 以上版本會自動支援 Canonical 服務。
本頁說明 Cloud Service Mesh 中的標準服務。
什麼是標準服務?
Cloud Service Mesh 1.6.8 推出了對標準服務的支援,這是一種概念和架構模型,可將實際工作負載表示為單一服務,方便您進行觀測和管理。這些工作負載可跨越多個叢集、不同的後端平台,以及不同的結構定義和設定。
Kubernetes 使用者:Canonical Service 大致類似於 Kubernetes 的「app」概念和應用程式 CRD。
無伺服器使用者:Canonical Service 與 App Engine 服務和 Cloud Run 服務的概念非常相似。唯一的差異在於 Google 無伺服器服務本質上是區域性服務,而標準服務則是全球 / 多區域抽象概念。
舉例來說,以下情境都說明瞭您可能會參照標準服務的方式:
- 服務發生中斷。
- 服務會在地端和公有雲中執行。
- 部署服務的新修訂版本。
- Foo 服務傳送的流量過多,可能會超出我們的容量。
標準服務會位於單一網格中,在 Cloud Service Mesh 中,這表示這些服務在車隊和 Google Cloud專案中皆為唯一 (所有服務都與網格一對一對應)。
特定工作負載只能屬於一個 Canonical 服務。
您可以根據定義標準服務的一系列工作負載,判斷標準服務的完整範圍,包括:
- 主機名稱和 IP 位址
- 聯播網
- 網路和安全性政策
- 路由和負載平衡
- VM 和容器映像檔
- 實體或虛擬基礎架構
- 地理區域
- 持續整合/持續推送軟體更新系統
- 原始碼
- 遙測
- 服務等級目標和快訊
您可以在「服務」頁面上查看資訊主頁,瞭解各項服務的這些運作詳細資料。
Canonical Service 相關規定和限制
Canonical 服務僅適用於 Cloud Service Mesh 1.6.8 以上版本。
每個標準服務都位於單一 Kubernetes/Istio 命名空間中,且無法跨越命名空間界線。
您必須在父項命名空間中為標準服務指定不重複的名稱。詳情請參閱「定義標準服務」。
Canonical 服務可跨多個叢集和區域運作。雖然可以依叢集和區域細分資源和遙測資料,但這些並非決定服務範圍或獨特性的因素。
因此,標準服務的專屬身分會由下列項目決定:
mesh id + namespace + canonical name.
修訂版本
修訂版本是指某項服務的小幅度變更,您可以根據服務的不同「版本」加以區別。
為個別工作負載加上「標準修訂版本」標籤,以區分標準服務的修訂版本。這個標籤是您可以定義的任意字串。雖然在某些情況下標籤會自動設定,但您或部署服務的 CI/CD 系統必須套用標籤。如需設定此標籤的相關指南,請參閱「定義標準服務」。
請注意,您可以同時發布多個修訂版本。一次執行多個修訂版本最常用於完成以下工作:
- 在服務的所有執行個體中,逐步推出新的二進位檔、新設定或兩者皆是。在這種情況下,舊版和新版修訂版本都會在轉換期間上線。
- 「A/B 版本測試」或「即時實驗」,其中兩個不同版本的服務會向部分下游呼叫端公開,以測試變更的效果。