宣布支援從 1.8 版直接升級至 1.10 版
朝向更順暢的升級流程邁進。
隨著服務網格技術從尖端走向穩定的基礎設施,許多使用者表示有興趣減少服務網格的升級頻率,因為驗證新的次要版本可能需要花費大量時間。對於沒有跟上新版本的使用者來說,升級可能會特別困難,因為 Istio 不支援跨多個次要版本的升級。若要從 1.6.x
升級到 1.8.x
,使用者必須先升級到 1.7.x
,然後再升級到 1.8.x
。
隨著 Istio 1.10 版本的發布,我們宣布支援從 Istio 1.8.x
直接升級到 1.10.x
的 Alpha 級別支援,而無需升級到 1.9.x
。我們希望這能減輕執行 Istio 的操作負擔,符合我們 2021 年改進「第二日操作」的主題。
從 1.8 版升級到 1.10 版
對於直接升級,我們建議使用金絲雀升級方法,以便在將工作負載切換到新版本之前驗證控制平面的功能。我們也將在本指南中使用修訂標籤,這是 1.10 版本中引入的金絲雀升級改進,因此使用者在升級時不必更改命名空間上的標籤。
首先,使用版本 1.10
或更新版本的 istioctl
,建立一個指向您現有 1.8
修訂版本的修訂標籤 stable
。從現在開始,我們假設這個修訂版本稱為 1-8-5
$ istioctl x revision tag set stable --revision 1-8-5
如果您的 1.8 安裝沒有關聯的修訂版本,我們可以使用以下指令建立此修訂標籤
$ istioctl x revision tag set stable --revision default
現在,將先前標記為 istio-injection=enabled
或 istio.io/rev=<REVISION>
的命名空間重新標記為 istio.io/rev=stable
。下載 Istio 1.10.0 版本並安裝帶有修訂版本的新控制平面
$ istioctl install --revision 1-10-0 -y
現在評估 1.10
修訂版本是否已正確啟動且運作正常。一旦對新修訂版本的穩定性感到滿意,您可以將修訂標籤設定為新的修訂版本
$ istioctl x revision tag set stable --revision 1-10-0 --overwrite
驗證修訂標籤 stable
是否指向新的修訂版本
$ istioctl x revision tag list
TAG REVISION NAMESPACES
stable 1-10-0 ...
一旦準備好將現有的工作負載轉移到新的 1.10 修訂版本,則必須重新啟動工作負載,以便 sidecar 代理程式將使用新的控制平面。我們可以逐個瀏覽命名空間,並將工作負載轉移到新版本
$ kubectl rollout restart deployments -n …
將工作負載部署到新的 Istio 版本後發現問題?沒問題!由於您使用的是金絲雀升級,因此舊的控制平面仍在運行,我們可以切換回舊版本。
$ istioctl x revision tag set prod --revision 1-8-5
然後在觸發另一次部署後,您的工作負載將恢復到舊版本。
我們期待收到您有關直接升級的經驗,並期待未來改進和擴展此功能。