全部產品
Search
文件中心

Alibaba Cloud Service Mesh:升級ASM執行個體

更新時間:Jun 30, 2024

為避免到期版本執行個體存在的安全和穩定性風險,同時保證您業務的連貫性,Service MeshASM支援通過原地升級或金絲雀升級的方式升級控制平面和資料平面。本文介紹ASM執行個體升級前後的注意事項和說明、升級路徑、升級流程和操作步驟等。

前提條件

已建立ASM執行個體

相關概念

展開查看原地升級、金絲雀升級、控制平面、資料平面的說明

概念

說明

原地升級

支援控制面和資料面分階段、逐步升級。您可以在ASM控制台發起控制平面升級,控制平面升級完畢後,需要您手動升級資料平面Sidecar代理和網關。

金絲雀升級

支援升級期間執行復原操作。首先啟動一個新版本控制面,可以先將部分業務遷移至新版本控制面,驗證無誤後,再完成全量業務遷移。驗證過程出現問題可以復原。

控制平面

控制平面負責管理和配置控制Service Mesh的各種策略和規則。它的核心職責包括:

  • 服務發現:為資料平面維護服務註冊資訊,使得服務之間能夠相互發現和通訊。

  • 組態管理:提供統一的API來集中配置和管理流量規則、策略以及Service Mesh的其他相關設定。

  • 策略決策:定義和執行存取控制、限流、故障注入、路由策略等。

  • 認證管理:負責服務間通訊的認證和密鑰的管理,實現加密通訊。

在ASM中,控制平面主要由Istio的組件構成,例如Istio-Pilot負責服務發現和流量管理,Istio-Citadel負責安全通訊的認證管理等。

資料平面

資料平面主要由一系列輕量級的網路代理程式組成,這些代理部署為服務的Sidecar,與應用程式容器在同一個Pod中運行。它的核心職責包括:

  • 流量攔截:攔截進出Pod的所有網路通訊。

  • 流量路由:依據控制平面的配置執行具體的流量轉寄、負載平衡和路由決策。

  • 資料報告:收集並上報關於服務間通訊的資料,如延遲、流量量、錯誤率等。

  • 策略執行:實施存取控制、速率限制和其他策略。

在ASM中,資料平面主要通過Istio提供的Envoy代理實現,Envoy代理以Sidecar的形式部署,貼近應用服務,提供高效能的網路代理程式能力。

為什麼需要升級

ASM原則上保持每三個月更新一次Istio大版本的頻率。大版本推出後,由於功能更新和漏洞修複,ASM會不定期推出補丁版本(例如1.19.x.y)的更新。到期的ASM執行個體版本存在安全和穩定性風險,建議您及時進行升級操作。關於ASM支援的版本,請參見版本機制

主動升級ASM執行個體有以下好處:

  • 降低安全和穩定性風險:隨著ASM版本迭代,會不斷最佳化及修複發現的安全及穩定性漏洞,長久使用到期版本執行個體會給業務帶來安全和穩定性風險。

  • 享受更好的維護支援:對於到期的執行個體版本,ASM不再提供安全補丁和問題修複,也無法保證到期版本的支援人員品質。使用新版本能夠讓您享受更好的支援人員和答疑服務。

  • 使用新版本的新功能:隨著社區Istio版本的演化,新版本包含新的功能和改進,ASM也將適配新版本,為您帶來更好的開發和營運體驗。

升級注意事項和說明

注意事項

  • 網格升級需要您手動重啟資料面Pod以完成新版本Sidecar的重新注入,建議您在業務低峰期進行升級操作。

  • 手動升級ASM網關將觸發滾動重啟。

  • 升級期間請勿進行灰階發布、流量規則配置等操作。

  • 原地升級執行個體時,ASM會對您的執行個體進行升級預檢查,但無法保證檢查出所有不相容的功能配置和API。您可以根據協助文檔、控制台資訊、站內信等渠道關注版本發布情況,在執行個體升級時提前瞭解相應版本的升級注意事項。

  • 基於安全原因,ASM有以下機制:

    • ASM保留強制升級到期版本執行個體的權利(在執行個體版本到期後的某個時間,強制升級執行個體到支援中的最早版本),建議您參照下文提前主動升級執行個體。

    • 對於補丁版本的升級(例如從v1.18.0.123升級到v1.18.0.146),在不發送通知的情況下,系統會不定期完成自動熱更新。自動熱更新時,資料面網關和Sidecar代理版本保持不變。

原地升級說明

原地升級僅支援相鄰版本升級,不支援跨版本升級,也不支援回退。

金絲雀升級說明

相比於原地升級,金絲雀升級方式可以支援先驗證新版本,確認功能驗證無誤後再切換為目前的版本,為業務提供一種更穩妥的升級方式。金絲雀升級支援最多跨一個次要版本升級,過程中支援回退。

類型

說明

適用版本

企業版或旗艦版執行個體,且版本為1.16.4.91及以上。

適用情境

  • 跨一個次要版本的升級情境,例如從1.16.4版本升級到1.17.2版本。

  • Minor版本有變化情況下的升級情境,例如從1.16.4版本升級到1.17.2版本或1.18.0版本,最多支援跨一個次要版本。

說明

僅asm-patch版本有變化的情境,建議您採用原地升級方式。

版本格式

ASM版本的格式為<major>.<minor>.<patch>.<asm-patch>[-<sequence>-aliyun],例如v1.18.0.158-gc6cf0b9c-aliyun(企業版),欄位說明如下:

  • major:主要版本。

  • minor:次要版本。

  • patch:修訂版本。

  • <major>.<minor>.<patch>:對應社區版本,例如1.18.0。

  • asm-patch:ASM的修訂版本,即ASM在社區版本基礎上的修訂。例如在1.18.0.158中,asm-patch為158。

  • sequence:對應為版本代碼的Git Commit。

Sidecar注入標籤說明

當一個ASM執行個體開啟金絲雀升級後,對應這個ASM執行個體的控制面會同時存在兩個版本,例如從1.17.2.42版本金絲雀升級到1.18.0的某個版本,會同時存在1.17.2和1.18.0兩個控制面版本。

在金絲雀升級過程中,您可以通過為Kubernetes叢集中的命名空間指定注入標籤,決定命名空間中的工作負載注入的Sidecar版本。預設標籤為istio-injection=enabled,即注入目前的版本。

當兩個版本同時存在時,Namespace標籤下業務注入的Sidecar版本的映射關係說明如下:

  • 目前的版本

    • istio-injection=enabled標籤注入的Sidecar對應為ASM目前的版本,並串連目前的版本對應的控制面。

    • 給Namespace打上istio.io/rev=$revision標籤,標明需要注入的Sidecar版本,revision變數格式為x-y-z,例如1-17-2

    • 給Namespace打上istio.io/rev=stable標籤,標明需要注入的Sidecar版本為當前的ASM版本。

    重要

    一個Namespace下,不能同時存在istio-injectionistio.io/rev兩個標籤。

    image

  • 金絲雀版本

    當商務服務需要注入金絲雀版本對應的Sidecar時,可以採用給Namespace打上istio.io/rev=$revisionistio.io/rev=canary標籤,其中$revision對應的格式為版本的x-y-z,例如1-18-0。建議您使用istio.io/rev=$revision標籤。

    關於金絲雀版本的操作樣本,請參見使用金絲雀模式增強升級穩定性

升級路徑、方式和流程

升級路徑

此處以1.16升級到1.18版本為例進行說明,僅作為參考,請您以實際的作業環境為準。

起始版本

目標版本

升級方式

1.16.4.93

1.17.2.42

原地升級或金絲雀升級

1.17.2.42

1.18.0.158

原地升級或金絲雀升級

1.16.4.93

1.18.0.158

金絲雀升級

升級方式

升級流程

請您確認升級的版本和方式,瞭解升級注意事項和說明後,再進行升級操作。

操作步驟

原地升級

  1. 登入ASM控制台,在左側導覽列,選擇服務網格 > 網格管理

  2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇網格執行個體 > 升級管理

  3. 升級管理頁面的原地升級頁簽,單擊運行檢查,在重要提示對話方塊,單擊確定

  4. 升級預檢查通過後,單擊開始升級,在重要提示對話方塊,單擊確定

  5. 資料平面地區的升級列,選中目標網關,單擊升級網關,在重要提示對話方塊,單擊確定

  6. 按需重啟工作負載。具體操作,請參見重新部署工作負載

金絲雀升級

具體操作,請參見使用金絲雀模式增強升級穩定性

升級常見問題

當金絲雀版本切換為正式版本時,對應之前部署的商務服務注入的Sidecar為老版本,如何升級到新版本?

您可以在升級管理頁面單擊金絲雀升級頁簽,然後單擊資料面頁簽,在待升級工作負載地區,單擊目標工作負載右側的滾動升級,觸發商務服務Deployment的變換。

原地升級會影響現有的服務流量接入嗎?

原地升級隻影響控制面,不會影響資料面的流量。

ASM執行個體需要升級多少次才能到目標版本?

原地升級僅支援相鄰大版本升級,金絲雀升級支援最多跨一個次要版本升級。您可以按照實際情況進行計算。

ASM每個版本都可以任意選擇升級方式嗎?

ASM執行個體版本為1.16.4.91以下,僅支援原地升級;1.16.4.91及以上版本,支援原地升級和金絲雀升級。

ASM執行個體升級後,對應的ACK叢集需要升級到什麼版本?

您可以參考Istio版本支援,按需進行升級。關於升級ACK的具體操作,請參見手動升級叢集

相關文檔

  • 您可以對網格進行診斷,包括資料平面版本檢查、服務連接埠檢查、服務關聯檢查、App及Version標籤檢查、目標地址檢查、虛擬服務衝突檢查等,及時發現潛在問題。具體操作,請參見使用ASM網格診斷

  • 容器智能營運平台提供一鍵故障診斷能力,包括節點診斷、Pod診斷、Service診斷、Ingress診斷、記憶體診斷、網路診斷,可以輔助您定位叢集中出現的問題。具體操作,請參見使用叢集診斷

  • 關於ASM功能的最新動向,請參見功能發布記錄