共用方式為

在虚拟机规模集上启用自动区域平衡(预览版)

本指南提供有关在虚拟机规模集上启用自动区域平衡的说明。

重要

虚拟机规模集的自动区域负载均衡目前处于预览阶段。 需同意补充使用条款才可使用预览版。 此功能的一些方面可能会在正式上线之前发生变化。

先决条件

在规模集上启用自动区域平衡之前,请确保满足以下先决条件:

为虚拟机规模集启用应用程序运行状况监视

规模集必须启用应用健康监控才能使用自动区域平衡。 可以使用 应用程序运行状况扩展负载均衡器运行状况探测来进行运行状况监视,其中一次只能启用一个。

应用程序运行状况状态用于确保在重新平衡过程中创建的新虚拟机(VM)成功且“正常”,然后再删除原始 VM。

使用至少两个可用性区域配置规模集

虚拟机规模集必须跨区域,至少配置了两个可用性区域(例如)。 zones = [1, 2] 规模集中的所有 VM 都必须分配给可用性区域。 包含区域(非区域)VM 的规模集不符合自动区域平衡的条件。 这可确保 VM 可以分布在多个区域,以便实现复原。

使用受支持的计算 API 版本

计算 API 版本 2024-07-01 或更高版本支持自动区域平衡。

向 AFEC 注册订阅

该订阅必须注册 Azure 功能公开控制 (AFEC) 标志 Microsoft.Compute.AutomaticZoneRebalancing。 需要此注册才能为订阅启用自动区域平衡功能。

  1. 登录到 Azure 门户

  2. 在搜索框中,输入“订阅”然后选择“订阅”

  3. 选择订阅名称的链接。

  4. 从左侧菜单的“设置”下,选择“预览功能”

  5. 筛选 AutomaticVMSSZoneRebalancing 并将其选中

  6. 选择注册 这是 Azure 门户上的“注册”按钮截图,展示了自动区域均衡预览标志。

  7. 选择 “确定”

在规模集上启用自动区域平衡

按照步骤在新的或现有的虚拟机规模集上启用自动区域平衡。

resiliencyPolicy 具有以下参数的属性添加到规模集模型。 使用 API 版本 2024-07-01 或更高版本。

PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2024-07-01'
"properties": {
    "resiliencyPolicy": {
      "AutomaticZoneRebalancingPolicy": {
        "Enabled": true,
        "RebalanceStrategy": "Recreate",
        "RebalanceBehavior": "CreateBeforeDelete"
      }
    }
}

在没有实例修复的情况下启用自动区域平衡

默认情况下,启用自动区域平衡还允许 自动实例修复 为规模集提供高可用性。 如果想要在没有自动实例修复的情况下使用自动区域平衡,可以单独禁用实例修复。

注释

禁用自动实例修复意味着您的扩展组仅能受益于区域级复原,而不是实例级的健康监测和修复。

以下示例演示如何在创建新的虚拟机规模集时启用自动区域平衡时禁用自动实例修复。 有关详细信息,请参阅 az vmss createaz vmss update

# Step 1: Create VMSS with zones configured
az vmss create \
    --resource-group myResourceGroup \
    --name myVMScaleSet \
    --location chinanorth2 \
    --vm-sku Standard_D2s_v3 \
    --instance-count 3 \
    --zones 1 2 3 \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

# Step 2: Add Application Health extension (required for automatic zone balance)
az vmss extension set \
    --resource-group myResourceGroup \
    --vmss-name myVMScaleSet \
    --name ApplicationHealthLinux \
    --publisher Microsoft.ManagedServices \
    --version 2.0 \
    --settings '{"protocol": "http", "port": 80, "requestPath": "/healthEndpoint"}'

# Step 3: Upgrade instances to install the extension
az vmss update-instances \
    --resource-group myResourceGroup \
    --name myVMScaleSet \
    --instance-ids "*"

# Step 4: Enable automatic zone balance and disable automatic instance repairs
az vmss update \
    --resource-group myResourceGroup \
    --name myVMScaleSet \
    --enable-automatic-zone-balancing true \
    --automatic-zone-balancing-behavior CreateBeforeDelete \
    --automatic-zone-balancing-strategy Recreate \
    --enable-auto-repairs false

常见问题

如何监视在我的规模集中的自动区域平衡操作?

查看 Azure Monitor 活动日志中的重新均衡操作:

可以通过 Azure Monitor 活动日志监视自动区域平衡操作。 每次重新均衡作都会生成活动日志条目,这些条目显示在重新均衡过程中创建和删除 VM 的时间。

  1. 在 Azure 门户中,导航到您的虚拟机规模集。
  2. 从左侧菜单中选择 活动日志
  3. 对名称为 BalanceVMsAcrossZonesMicrosoft.Compute/virtualMachineScaleSets/rebalanceVmsAcrossZones/action 的操作进行筛选。

有关 Azure Monitor 活动日志的详细信息,请参阅 Azure Monitor 活动日志

查看编排服务状态(仅限 VMSS 统一):

对于具有统一业务流程模式的虚拟机规模集,还可以使用 “获取实例视图 API ”来检查自动区域平衡业务流程服务状态:

GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmssName}/instanceView?api-version=2025-04-01

响应包括具有自动区域平衡状态的 orchestrationServices 数组:

"orchestrationServices": [
  {
    "serviceName": "AutomaticZoneRebalancing",
    "serviceState": "Running",
    "latestOperationStatus": "InProgress / Completed",
    "lastStatusChangeTime": ""
  }
]

lastStatusChangeTime字段指示上次更改状态的时间,帮助你跟踪重新平衡操作何时发生。

如何确定我的规模集是否启用了自动化的区域平衡?

可以检查规模集配置中的 resiliencyPolicy 属性。 如果 AutomaticZoneRebalancingPolicy.Enabled 设置为 true,则启用自动区域平衡。

我的规模集为何不平衡?

仅当规模集中的 VM 在可用性区域之间不平衡且满足所有安全条件时,才会运行自动区域平衡。 例如,规模集上不能有正在进行或最近完成的操作,并且过去12小时内没有重新平衡的操作。

重新均衡还取决于可用容量-如果预配不足区域中没有足够的容量,自动区域平衡无法创建新的 VM,重新平衡作不会启动。

自动区域平衡运行的频率如何?

自动区域平衡功能会持续检查你的虚拟机规模集是否存在区域不平衡。 当检测到不平衡并且有机会重新平衡时,在所有安全条件都满足且欠配置区域中有可用容量的情况下,重新平衡操作会立即启动。

如果在过去 12 小时内已发生重新平衡作,则在该窗口通过之前,不会发生另一次重新平衡。 这些限制有助于确保对规模集的更改是逐步且可控的。

如果订阅在重新均衡期间没有足够的配额来创建新 VM,会发生什么情况?

如果没有足够的配额来创建新的虚拟机,则重新平衡操作不会继续。 需要增加配额,以便重新平衡。

是否可以控制从重新均衡中排除哪些 VM?

是的。 可以将 实例保护策略 应用于特定 VM,以防止选择它们进行重新均衡。

后续步骤