使用滚动升级策略是将更新应用于虚拟机规模集中实例的最安全方法。 批量执行更新可确保规模集维护一组可用于获取流量的实例,这意味着无需关闭整个工作负荷即可进行更改。
滚动升级策略最适合生产工作负荷。
要求
在具有灵活业务流程的虚拟机规模集上使用滚动升级策略时,规模集还必须使用 应用程序运行状况扩展 来监视应用程序运行状况。
在具有统一业务流程的虚拟机规模集上使用滚动升级策略时,规模集还必须具有 运行状况探测 或使用 应用程序运行状况扩展 来监视应用程序运行状况。
如果将虚拟机附加到虚拟机规模集,附加的虚拟机也应该有应用程序健康扩展。 如果附加的虚拟机未配置运行状况扩展并报告应用程序运行状况,则滚动升级可能会受到影响。
概念
升级策略模式与滚动升级策略
升级策略模式和滚动升级策略都是升级策略中互相嵌套但独立的设置。 这意味着,虽然规模集可以使用自动或手动升级策略模式,但仍有一个滚动升级策略关联。 此滚动升级策略附带默认设置,但也可配置为满足业务需求。
"properties": {
"upgradePolicy": {
"mode": "<Automatic, Manual, Rolling>",
"rollingUpgradePolicy": {
"maxBatchInstancePercent": 20,
"maxUnhealthyInstancePercent": 20,
"maxUnhealthyUpgradedInstancePercent": 20,
"pauseTimeBetweenBatches": "PT2S",
"MaxSurge": "false"
}
}
}
对于规模集模型更新,升级策略模式将确定规模集中的实例如何更新。
重要
如果使用 自动 OS 映像升级 或 自动扩展升级,这些功能不使用升级策略模式。 相反,这些功能使用滚动升级策略配置设置来执行滚动升级。
滚动升级策略配置设置
| 设置 | Description |
|---|---|
| 滚动升级批量大小 % | 指定要同时升级的规模集实例总数中的数量。 示例:当规模集中有 10 个实例时,批大小为 20% 会导致升级批处理中每批包含两个实例。 |
| 批处理之间的暂停时间(秒) | 指定如何设置规模集在完成一次升级批处理后到开始下一次批处理之间的等待时间。 示例:暂停时间为 10 秒意味着一旦批处理成功完成,扩展集将等待 10 秒,然后再移动到下一批。 |
| 最大异常实例百分比 | 指定滚动升级之前和期间允许被标记为不健康的实例的总数。 示例:最大不正常实例 % 为 20 表示,如果规模集有 10 个实例,并且超过两个实例报告为不健康,则滚动升级将停止。 |
| 最大不正常升级 % | 指定升级后允许标记为不正常的实例总数。 示例:最大不正常升级比例为 20% 表示,如果整个规模集中有 10 个实例,并且在升级后报告为不正常的实例超过两个,则滚动升级将被取消。 |
| 确定不正常实例的优先级 | 在对报告为正常的实例进行升级之前,告知规模集先升级报告为不正常的实例。 示例:如果规模中的某些实例在滚动升级开始时失败或状态不健康,规模集会优先更新这些实例。 |
| 启用跨区域升级 | 允许规模集在确定批处理时忽略可用性区域边界。 这实质上允许滚动升级将规模集视为区域部署,而不是区域性部署。 |
| MaxSurge | 使用最新的扩展模型以分批方式创建新实例。 成功创建一批新实例并将其标记为正常后,规模集会以批处理方式删除与旧规模集模型匹配的实例。 这一过程将持续到所有实例都更新为最新版本。 使用 MaxSurge 滚动升级可以帮助改善升级事件期间的服务运行时间。 有关详细信息,请参阅 MaxSurge 滚动升级。 |
| 策略违规时回滚失败的实例(仅限统一编排) | 如果违反滚动升级策略,则将失败的实例回滚到之前的版本。 |
设置或更新滚动升级策略
可以在创建规模集期间配置滚动升级策略。 由于滚动升级策略需要成功监视应用程序运行状况,并且存在确定升级完成方式的特定设置,因此建议首先使用手动升级模式创建规模集。 一旦确认成功报告应用程序运行状况,请将升级策略从手动变更为滚动。
选择要更改升级策略的虚拟机规模集。 在“设置”菜单中,选择升级策略,然后从下拉菜单中选择滚动 - 升级以分批推出,并可选择暂停。
获取滚动升级状态
在 Azure 门户中触发滚动升级时,规模集资源顶部会显示一个横幅,告知正在进行滚动升级。 可以单击查看详细信息以查看滚动升级的状态。 完成所有更新后,横幅将消失。
此外,还可以详细查看活动日志中已经发布的更改。 滚动升级事件位于 “创建”或“更新虚拟机规模集”下。 选择 “更改历史记录 ”以查看正在更新的内容。
取消滚动升级
可以使用 Azure 门户取消正在进行的滚动升级,方法是在规模集上方的横幅中选择 视图详细信息 。 在弹出窗口中,可以查看当前状态,底部是 取消升级 选项。
重启滚动升级
如果您决定取消滚动升级或由于任何策略违反导致升级停止,那么任何进一步导致规模集模型更改的变动都会触发新的滚动升级。 如果要重启滚动升级,请触发泛型模型更新。 这会告诉规模集检查所有实例是否更新为最新模型。
若要在取消滚动升级后重新启动滚动升级,请触发缩放集检查缩放集中的实例是否与最新的缩放集模型保持一致。 可以通过运行 az vmss update 来执行此作。
az vmss update \
--name myScaleSet \
--resource-group myResourceGroup
后续步骤
了解如何在虚拟机规模集上执行手动升级。