當您更新Istio資源的spec
欄位中的內容時,ASM會記錄更新Istio資源的歷史版本,最多記錄最新動向的5個版本。本文以虛擬服務為例,介紹如何復原Istio資源的歷史版本。
前提條件
背景資訊
Istio資源是指ASM控制台流量管理下的虛擬服務、目標規則、網關規則、服務條目、Envoy過濾器、工作負載組、工作負載條目和Sidecar資源,以及零信任安全下的請求身份認證、對等身份認證及授權策略。
步驟一:啟用Istio資源歷史版本功能
您可以通過以下兩種方式來啟用Istio資源歷史版本功能:
未建立ASM執行個體:在建立ASM執行個體時選中啟用Istio資源歷史版本來啟用Istio資源歷史版本功能。
已建立ASM執行個體:在ASM執行個體的基本資料頁面啟用Istio資源歷史版本功能。本文以已建立ASM執行個體情境為例。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在基本資料頁面,單擊功能設定,在功能設定更新面板選中啟用Istio資源歷史版本,然後單擊確定。
步驟二:產生虛擬服務的歷史版本
只有更新Istio資源的spec
欄位中的內容時,ASM才會記錄形成歷史版本。如果您更新的是Istio資源其他欄位,ASM不會記錄形成歷史版本。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在虛擬服務頁面,單擊目標虛擬服務操作列下的查看YAML。
在編輯對話方塊,修改
spec
欄位下的內容(例如將number
連接埠由9080
修改為9081
),然後單擊確定。
步驟三:復原虛擬服務的歷史版本
本文以復原到目標虛擬服務的v2版本為例。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在虛擬服務頁面,單擊目標虛擬服務右側操作列下的版本管理。
在版本管理對話方塊,單擊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資源歷史版本管理功能不會為您記錄此欄位的設定。