当您准备修改伸缩组中的伸缩配置或镜像,并希望应用这些更改时,可以利用实例刷新功能。伸缩组会基于新的伸缩配置或镜像来创建新实例,逐步替换原有的旧实例,以实现滚动更新伸缩组中正在运行的实例,确保服务实例平滑升级。
功能介绍
在您需要滚动更新伸缩组的实例配置和实例镜像时,可以通过实例刷新功能实现。在启用实例刷新任务后,伸缩组会自动根据您指定的期望配置,创建新实例逐步取代旧实例,实现平滑版本迭代。该功能有以下特点:
滚动更新:该功能通过创建新的实例,释放旧的实例,实现滚动更新。
与伸缩组滚动升级功能的区别:在使用滚动升级更新实例镜像时,不会释放实例,而是分批更换实例的镜像。
允许伸缩组中实例数暂时超过或低于期望实例数量:伸缩组在执行实例刷新任务时,伸缩组允许组内实例数暂时超过或低于期望实例数,您可以根据需求,自行控制允许超过或低于限制的百分比。
不影响伸缩活动:在实例刷新任务执行期间,伸缩活动可照常进行,其中,在触发扩容时,伸缩组会以实例刷新任务中指定的伸缩配置或镜像创建实例,保证伸缩组中实例的一致性。
与滚动升级的区别:在执行滚动升级任务期间,伸缩组会暂停扩缩容流程。
不影响服务中的实例:在实例刷新功能执行期间,不会将实例转为备用状态,而是在新实例创建完成后释放,实现更加平滑的过渡。
自动修改伸缩配置:在实例刷新任务执行完成后,会自动选用期望配置为伸缩组中生效的伸缩配置,或直接修改生效配置中的镜像。
使用限制
仅ECS类型伸缩组支持实例刷新功能。
实例回收模式为停机回收模式或强制停机回收模式的伸缩组不支持该功能。
当伸缩组中正在生效的伸缩配置中开启了“使用vCPU个数计算伸缩组容量”这一选项时,不支持实例刷新功能,同时,不支持期望配置开启“使用vCPU个数计算伸缩组容量”这一选项。
功能使用流程
场景一:仅需更新伸缩组中实例的镜像
当您仅需更新业务服务程序或者实例内部某些配置时,您可以参考以下流程实现。
准备新的实例镜像。
首先,您需要准备包含您修改后实例的镜像,执行实例刷新时会使用该镜像创建新实例。创建自定义镜像,请参见使用实例创建自定义镜像。
启动实例刷新任务。
需在启动实例刷新任务时,指定期望镜像以及以何种方式滚动更新伸缩组中的实例。具体操作步骤与配置项说明,请参见启动实例刷新任务。
监控实例刷新任务。
在实例刷新任务执行期间,您可以持续关注任务执行的状态,在必要时可以采用暂停、取消、回滚等操作。具体操作,请参见实例刷新操作指引。
场景二:更新伸缩组中的实例使用的伸缩配置
如果您需要更新伸缩配置中的某些选项并期望在伸缩组中的实例中生效,您可以参考以下流程实现。
创建新的伸缩配置。
首先,您需要准备一个新的伸缩配置,执行实例刷新任务期间,会通过该配置创建新实例。创建伸缩配置,请参见创建伸缩配置(ECS实例)。
创建新的伸缩配置的目的:在创建实例刷新任务时,伸缩组会筛选出没有使用目标伸缩配置的实例进行刷新,因此,通过先修改伸缩配置再刷新的方式,可能会造成无法刷新实例的情况。若在刷新完成后出现意料之外情况时,更清晰的配置版本可以帮助您快速找到上一个可用配置并恢复。
启动实例刷新任务。
需在启动实例刷新任务时,指定期望伸缩配置以及以何种方式滚动更新伸缩组中的实例。具体操作步骤与配置项说明,请参见启动实例刷新任务。
监控实例刷新任务。
在实例刷新任务执行期间,您可以持续关注任务执行的状态,在必要时可以采用暂停、取消、回滚等操作。具体操作,请参见实例刷新操作指引。
实例刷新操作指引
操作入口:进入实例刷新功能页面
实例刷新的功能集中在伸缩组的实例刷新页面,您可以参考以下步骤进入该页面。
启动实例刷新任务
伸缩组同时刻只能有一个正在运行中的实例刷新任务。
实例刷新任务执行期间无法修改伸缩组生效的伸缩配置。
在实例刷新功能页面,单击实例刷新按钮,弹出实例刷新配置页面。
在实例刷新配置页面,根据界面提示,完成容量策略配置和期望配置。
检查配置后,单击启动实例刷新按钮,实例刷新任务开始执行。
暂停/恢复实例刷新任务
如果您在实例刷新任务执行期间发现问题,您可以暂停实例刷新任务,排查问题,确认是否继续进行实例刷新任务。暂停/恢复操作的位置如图所示。
如果在暂停实例刷新任务之前,新创建的实例已经开始进行初始化或者加入伸缩组,暂停时实例会继续进行初始化和加入伸缩组。
暂停实例刷新任务
恢复实例刷新任务
回滚实例刷新任务
如果您在实例刷新任务执行期间发现问题,您可以直接回滚到之前使用的伸缩配置或镜像。回滚实例刷新任务的操作位置如图所示。
取消实例刷新任务
除了回滚之外,您可以取消正在进行实例刷新任务。取消实例刷新任务的操作位置如图所示。
与回滚不同,任务取消后,会保留已经完成替换和扩容的新实例。