当您更新Istio资源的spec
字段中的内容时,ASM会记录更新Istio资源的历史版本,最多记录最近更新的5个版本。本文以虚拟服务为例,介绍如何回滚Istio资源的历史版本。
背景信息
步骤一:启用Istio资源历史版本功能
您可以通过以下两种方式来启用Istio资源历史版本功能:
- 如果您没有创建ASM实例,您可以在创建ASM实例时选中启用Istio资源历史版本来启用Istio资源历史版本功能。
- 如果您已创建ASM实例,您可以在ASM实例的网格信息页面启用Istio资源历史版本功能。本文以已创建ASM实例场景为例。
- 登录ASM控制台。
- 在左侧导航栏,选择 。
- 在网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理。
- 在网格详情页面左侧导航栏选择功能设置。 ,然后在右侧页面单击
- 在功能设置更新面板选中启用Istio资源历史版本,然后单击确定。
步骤二:生成虚拟服务的历史版本
注意 只有更新Istio资源的
spec
字段中的内容时,ASM才会记录形成历史版本。如果您更新的是Istio资源其他字段,ASM不会记录形成历史版本。
- 登录ASM控制台。
- 在左侧导航栏,选择 。
- 在网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理。
- 在网格详情页面左侧导航栏选择 。
- 在虚拟服务页面单击目标虚拟服务操作列下的YAML。
- 在编辑面板修改
spec
字段下的内容,例如spec
字段下的number
端口由9080修改为9081,然后单击确定。
步骤三:回滚虚拟服务的历史版本
本文以回滚到目标虚拟服务的v2版本为例。
FAQ
为什么虚拟服务页面找不到版本管理?
回滚Istio资源的历史版本前,请确保您的Istio版本不能低于v1.9.7.92-g1d820703-aliyun,并且您需要启用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资源历史版本管理功能不会为您记录此字段的设定。