當您更新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資源歷史版本管理功能不會為您記錄此字段的設定。