代管 Cloud Service Mesh 發布管道
Cloud Service Mesh 會定期發布更新,提供安全性更新、修正已知問題,並推出新功能。發布版本會在穩定性與 Cloud Service Mesh 版本的功能組合之間取得平衡。Cloud Service Mesh 發布管道與 Google Kubernetes Engine (GKE) 發布管道相關聯。 Google 會自動管理每個發布版本的版本和升級頻率。
本文將比較各個發布管道,並說明如何更新非受管理 Proxy。
可用的發布管道
您可以使用下列發布版本。每個管道都會在功能可用性和更新流失率之間做出取捨。每個管道中的功能成熟度不同。重要安全性修補程式會發布至所有發布管道,以保護叢集和 Google 基礎架構。
| 頻道 | 代管 Cloud Service Mesh 新增可用性 | 屬性 |
|---|---|---|
| 快速 | 每次 Cloud Service Mesh 發布新版本後 | 盡早取得最新版 Cloud Service Mesh,並在版本中加入新功能時立即使用。控制層會經常更新,確保採用最新的修補程式版本,並提供新功能。搶鮮版最適合用於在試產環境中測試較新的 Cloud Service Mesh 版本和 API。 |
| 一般 | 「快速」升級為「一般」* | 在 Cloud Service Mesh 和 Istio 功能推出後不久,即可存取這些功能,但使用的版本經過較長時間的驗證。兼顧功能可用性與版本穩定性,建議多數使用者採用這個版本。 |
| 穩定 | 「Regular」升級為「Stable」* | 優先選擇穩定性,其次才是新功能。這個管道的變更和新版本會先在搶鮮版和一般版驗證,最後再推出,因此驗證時間更長。 |
*升級至下一個管道的時間表取決於多項因素,包括開放原始碼 Istio 版本、Anthos 版本和修補程式時間表,因此可能會有所變動。如要掌握最新資訊,請將 Cloud Service Mesh 版本資訊的網址新增至動態消息閱讀器,或直接新增以下動態消息網址:https://cloud.google.com/feeds/servicemesh-release-notes.xml |
||
當代管 Cloud Service Mesh 的子版本在搶鮮版管道中達到足夠的使用量,且穩定性良好,就會升級至一般版管道。子版本最終會升級至穩定版,穩定版只會接收高優先順序的更新和安全性修補程式。每次升級都代表穩定性和正式環境適用性有所提升,這是根據執行該版本的控制層效能而定。
所有管道都以正式發布版 (GA) 為基礎 (但個別功能可能不一定為正式發布版,如標示所示)。新版 Cloud Service Mesh 會先發布至搶鮮版,然後再逐步升級至一般版和穩定版。您可以選擇符合業務、穩定性和功能需求的管道。
叢集的 Cloud Service Mesh 管道取決於 GKE 叢集管道。
| GKE 管道 | Cloud Service Mesh 頻道 |
|---|---|
| 快速 | 快速 |
| 一般 | 一般 |
| 穩定 | 穩定 |
| (沒有管道) | 一般 |
各管道的 Cloud Service Mesh 版本
佈建代管 Cloud Service Mesh 時,系統會根據 GKE 叢集管道決定 Cloud Service Mesh 管道。如果您之後變更 GKE 叢集管道,系統會保留原始的 Cloud Service Mesh 管道。
下表顯示目前管道與 Cloud Service Mesh 版本的對應關係:
| 管道 | Cloud Service Mesh 版本 |
|---|---|
| 快速 | 1.21 |
| 一般 | 1.20 |
| 穩定 | 1.19 |
預設頻道
在全新安裝的 Cloud Service Mesh 中,如果叢集只安裝一個代管管道,該管道就會成為叢集的預設管道。
如果叢集已安裝 Istio 或 Cloud Service Mesh,且已設定預設標記,則必須指向受管理修訂版本。如果不是,則無須採取任何行動。
您可以將 istio-injection=enabled 標籤做為別名,指向您用於管道的其他標籤,例如預設修訂版本。在說明文件中,凡是顯示要使用 istio.io/rev 命名空間標籤進行注入的地方,都可以改用 istio-injection=enabled 標籤。
插入標籤
如要允許 Cloud Service Mesh 管理特定命名空間中的工作負載,命名空間必須標示與已安裝管道相應的標籤。代管 Cloud Service Mesh 支援兩種標籤:
- 標準修訂標籤,即
asm-managed-stable、asm-managed、asm-managed-rapid,分別對應至stable、regular和rapid頻道。 - 預設插入標籤 (例如
istio-injection=enabled),對應於該叢集的預設管道。使用預設插入標籤可簡化修訂版本之間的遷移作業。舉例來說,從 Istio OSS 遷移,或是從非受管理 Cloud Service Mesh 遷移至受管理 Cloud Service Mesh 時,就不必個別重新標記每個命名空間。在 Cloud Service Mesh 文件中,凡是顯示要使用istio.io/rev命名空間標籤進行注入,都可以改用istio-injection=enabled標籤。
其他注入標籤範例包括使用 sidecar.istio.io/inject (通常用於閘道) 和 istio.io/rev 標記工作負載,這兩種標籤適用於命名空間和工作負載。
預設插入標籤
如要將預設插入標籤套用至命名空間,請按照下列步驟操作:
kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev- --overwrite
修訂版本標籤
與其他 Kubernetes 標籤一樣,修訂版本標籤是鍵/值組合。
修訂版本標籤中的鍵一律為 istio.io/rev,但值會有所不同。
如要選取發布管道,請將下列其中一個修訂版本名稱套用至命名空間:
| 修訂版本名稱 | 管道 |
|---|---|
asm-managed |
一般 |
asm-managed-rapid |
快速 |
asm-managed-stable |
穩定 |
舉例來說,如要將「一般」發布管道套用至命名空間,請執行下列操作:
kubectl label namespace NAMESPACE istio.io/rev=asm-managed --overwrite
建議您使用叢集所用的發布管道。
如要查看命名空間使用的發布管道,請按照下列步驟操作:
kubectl get namespace NAMESPACE -o jsonpath='{.metadata.labels.istio\.io/rev}{"\n"}'
更新未受管理的 Proxy
每次發布 Cloud Service Mesh 後,請為服務和閘道重新啟動非受管理 Proxy。雖然控制層和 Proxy 採用不同版本時,服務網格仍可正常運作,但我們建議您更新 Proxy,以便使用新版 Cloud Service Mesh 設定 Proxy。
如果控制層版本比 Proxy 版本新,請為服務和閘道重新啟動非受管理 Proxy。
kubectl rollout restart deployment -n NAMESPACE