你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

已启用 Azure Arc 的服务器的自动扩展升级(预览版)

自动扩展升级(预览版)适用于已安装支持的 VM 扩展的已启用 Azure Arc 的服务器。 在计算机中启用自动扩展升级后,每当扩展发布者发布了扩展的新版本,该扩展就会自动升级。

自动扩展升级具有以下特性:

  • 随时都可选择加入和退出自动升级。
  • 每个受支持的扩展将单独注册,可以选择要自动升级哪些扩展。
  • 在所有公有云区域中均受支持。

注意

在此版本中,只能使用 Azure CLI 和 Azure PowerShell 模块配置自动扩展升级。

自动扩展升级的工作原理是什么?

扩展升级过程会将已启用 Azure Arc 的服务器支持的现有 Azure VM 扩展版本替换为扩展发布者为同一扩展发布的新版本。 默认情况下,将为部署已启用 Azure Arc 的服务器的所有扩展启用此功能,除非你明确选择退出自动升级。

可用性优先更新

适用于平台协调的更新的可用性优先模型可确保在多个可用性级别遵循 Azure 中的可用性配置。

对于一组正在进行更新的已启用 Arc 的服务器,Azure 平台将按照自动化扩展升级中所述的模型来协调更新。 但是,已启用 Arc 的服务器与 Azure VM 之间存在一些明显的差异:

跨区域:

  • 异地配对区域不适用。

在区域内部:

  • 可用性区域不适用。
  • 计算机将按照尽力运行的原则进行批处理,以避免对订阅中已向已启用 Arc 的服务器注册的所有计算机进行并发更新。

自动回滚和重试

如果扩展升级失败,Azure 将通过执行以下操作尝试修复扩展:

  1. Azure Connected Machine 代理将自动重新安装上一个已知正确的扩展版本,以尝试还原功能。
  2. 如果回滚成功,扩展状态将显示为“已成功”,并且该扩展将再次添加到自动升级队列。 下一次升级尝试可以尽快在下一个小时进行,并将继续直到升级成功为止。
  3. 如果回滚失败,扩展状态将显示为“失败”,扩展将不再按预期运行。 需要移除重新安装扩展才能还原功能。

如果继续升级扩展时遇到问题,可以禁用自动扩展升级,以防系统在排查问题时重试。 准备就绪后,可以再次启用自动扩展升级

支持的扩展

自动扩展升级支持以下扩展(将会定期添加更多扩展):

  • Azure Monitor 代理 - Linux 和 Windows
  • Azure 安全代理 - Linux 和 Windows
  • Dependency Agent - Linux 和 Windows
  • Key Vault 扩展 - 仅 Linux
  • Log Analytics 代理(OMS 代理)- 仅 Linux

启用自动扩展升级

在已启用 Azure Arc 的服务器上安装扩展时,默认启用自动扩展升级。 若要为现有扩展启用自动扩展升级,可以使用 Azure CLI 或 Azure PowerShell 将扩展的 enableAutomaticUpgrade 属性设置为 true。 对于要启用自动升级的每个扩展,需要重复此过程。

使用 az connectedmachine extension update 命令在扩展上启用自动升级:

az connectedmachine extension update \
    --resource-group resourceGroupName \
    --machine-name machineName \
    --name DependencyAgentLinux \
    --enable-auto-upgrade true

若要检查已启用 Arc 的服务器上所有扩展的自动扩展升级状态,请运行以下命令:

az connectedmachine extension list --resource-group resourceGroupName --machine-name machineName --query "[].{Name:name, AutoUpgrade:properties.enableAutoUpgrade}" --output table

若要使用 Azure PowerShell 为扩展启用自动扩展升级,请使用 Update-AzConnectedMachineExtension cmdlet:

Update-AzConnectedMachineExtension -ResourceGroup resourceGroupName -MachineName machineName -Name DependencyAgentLinux -EnableAutomaticUpgrade

若要检查已启用 Arc 的服务器上所有扩展的自动扩展升级状态,请运行以下命令:

Get-AzConnectedMachineExtension -ResourceGroup resourceGroupName -MachineName machineName | Format-Table Name, EnableAutomaticUpgrade

对多个扩展进行扩展升级

一台由已启用 Arc 的服务器托管的计算机可以有多个启用了自动扩展升级的扩展。 同一台计算机还可以包含其他未启用自动扩展升级的扩展。

如果计算机有多个可用的扩展升级,可将这些升级一起进行批处理,但每个扩展升级将单独在一台计算机上应用。 一个扩展失败不会影响到要升级的其他扩展。 例如,如果已计划升级两个扩展,而第一个扩展升级失败,在这种情况下,仍会升级第二个扩展。

禁用自动扩展升级

若要禁用扩展的自动扩展升级,请将 enable-auto-upgrade 属性设置为 false

对于 Azure CLI,使用 az connectedmachine extension update 命令在扩展上禁用自动升级:

az connectedmachine extension update \
    --resource-group resourceGroupName \
    --machine-name machineName \
    --name DependencyAgentLinux \
    --enable-auto-upgrade false

对于 Azure PowerShell,使用 Update-AzConnectedMachineExtension cmdlet:

Update-AzConnectedMachineExtension -ResourceGroup resourceGroupName -MachineName machineName -Name DependencyAgentLinux -EnableAutomaticUpgrade:$false

检查自动扩展升级历史记录

可以使用 Azure 活动日志来标识自动升级的扩展。 可以在单个已启用 Azure Arc 的服务器资源、资源组和订阅上找到“活动日志”选项卡。 扩展升级由 Upgrade Extensions on Azure Arc machines (Microsoft.HybridCompute/machines/upgradeExtensions/action) 操作标识。

若要查看自动扩展升级历史记录,请在 Azure 门户中搜索“Azure 活动日志”。 选择“添加筛选器”,然后选择“操作”筛选器。 对于筛选器条件,搜索“Azure Arc 计算机上的升级扩展”,然后选择该选项。 可以选择为“事件发起者”添加第二个筛选器,并将“Azure 区域服务管理器”设置为筛选条件,以便仅查看自动升级尝试并排除由用户手动启动的升级。

Azure Activity Log showing attempts to automatically upgrade extensions on Azure Arc-enabled servers.

后续步骤