全部產品
Search
文件中心

Alibaba Cloud Service Mesh:復原Istio資源的歷史版本

更新時間:Jun 30, 2024

當您更新Istio資源的spec欄位中的內容時,ASM會記錄更新Istio資源的歷史版本,最多記錄最新動向的5個版本。本文以虛擬服務為例,介紹如何復原Istio資源的歷史版本。

前提條件

背景資訊

Istio資源是指ASM控制台流量管理下的虛擬服務、目標規則、網關規則、服務條目、Envoy過濾器、工作負載組、工作負載條目和Sidecar資源,以及零信任安全下的請求身份認證、對等身份認證及授權策略。

步驟一:啟用Istio資源歷史版本功能

您可以通過以下兩種方式來啟用Istio資源歷史版本功能:

  • 未建立ASM執行個體:在建立ASM執行個體時選中啟用Istio資源歷史版本來啟用Istio資源歷史版本功能。

  • 已建立ASM執行個體:在ASM執行個體的基本資料頁面啟用Istio資源歷史版本功能。本文以已建立ASM執行個體情境為例。

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

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

  3. 基本資料頁面,單擊功能設定,在功能設定更新面板選中啟用Istio資源歷史版本,然後單擊確定

步驟二:產生虛擬服務的歷史版本

重要

只有更新Istio資源的spec欄位中的內容時,ASM才會記錄形成歷史版本。如果您更新的是Istio資源其他欄位,ASM不會記錄形成歷史版本。

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

  2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇流量管理中心 > 虛擬服務

  3. 虛擬服務頁面,單擊目標虛擬服務操作列下的查看YAML。

  4. 編輯對話方塊,修改spec欄位下的內容(例如將number連接埠由9080修改為9081),然後單擊確定

步驟三:復原虛擬服務的歷史版本

本文以復原到目標虛擬服務的v2版本為例。

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

  2. 網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇流量管理中心 > 虛擬服務

  3. 虛擬服務頁面,單擊目標虛擬服務右側操作列下的版本管理

  4. 版本管理對話方塊,單擊v2版本操作列下的查看,然後單擊復原

    虛擬服務頁面,單擊目標虛擬服務操作列下的查看YAML,在編輯對話方塊可以看到目標虛擬服務的YAML內容復原到v2版本。

FAQ

為什麼虛擬服務頁面找不到版本管理?

復原Istio資源的歷史版本前,請確保您的Istio版本不能低於1.9.7.92,且已啟用Istio資源歷史版本功能。

是否只能通過ASM控制台更新Istio資源,ASM才會記錄該資源的歷史版本?

Istio資源歷史版本功能不受操作方式的影響,只要您啟用該功能,ASM就會為您記錄Istio資源的歷史版本。

Istio資源歷史版本管理是否有什麼限制?

ASM最多為您記錄Istio資源最近被更新的5個歷史版本。當Istio資源修改超過5次,將清除更新時間最早的歷史版本。

ASM記錄的Istio資源歷史版本與實際更新的YAML內容不完全相同?

ASM記錄的Istio資源歷史版本會自動省略YAML中冗餘的預設值,不會影響該版本的實際使用效果。例如網關規則資源spec中的servers.tls欄位預設為PASSTHROUGH。如果您再將此欄位設定為PASSTHROUGH,則該設定冗餘,因此Istio資源歷史版本管理功能不會為您記錄此欄位的設定。