Ошибка при повторном развертывании масштабируемого набора виртуальных машин с помощью ARM

Я использую масштабируемый набор виртуальных машин со шлюзом приложений в шаблоне ARM. Первое развертывание работает нормально. При повторном развертывании шаблона я получаю сообщение об ошибке: «Пул внутренних адресов может иметь не более одного масштабируемого набора виртуальных машин».

IpConfiguration / subscriptions /.../ resourceGroups /.../ provider / Microsoft.Compute / virtualMachineScaleSets /.../ updateGroups /.../ networkInterfaceConfigurations /.../ ipConfigurations / ... не может ссылаться на пул внутренних адресов / подписки /.../ resourceGroups /.../ provider / Microsoft.Network / applicationGateways /.../ backendAddressPools / ... потому что он содержит другой масштабируемый набор виртуальных машин. Пул внутренних адресов может иметь не более одной масштабируемой виртуальной машины. (Код: ApplicationGatewayBackendAddressPoolCanHaveAtMostOneVMScaleSet)

Что может быть основной причиной этой проблемы?

Уточнение. Под повторным развертыванием я имею в виду: я хочу обновить существующее развертывание. Не хочу дублировать.


person Tom Deseyn    schedule 07.04.2016    source источник


Ответы (3)


«Пул внутренних адресов» (согласно поддержке Azure Resource Manager для балансировщика нагрузки)

это IP-адреса, связанные с сетевой интерфейсной картой (NIC) виртуальной машины, на которую будет распределяться нагрузка.

Что происходит в вашем развертывании, так это то, что у вас есть развертывание, которое пытается использовать один и тот же пул внутренних адресов для двух разных наборов виртуальных машин.

Где-то в вашем шаблоне у вас будет раздел, который выглядит примерно так

"type": "Microsoft.Network/loadBalancers",
"name": "[variables('loadBalancerName')]",
"location": "[parameters('resourceLocation')]",
"apiVersion": "[variables('networkApi')]",
"dependsOn": [
    "[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]"
],
"properties": {
    "backendAddressPools": [
        {
            "name": "[variables('backendAddressPoolsName')]"
        }
    ],

(очевидно, не действительный фрагмент JSON / шаблона)

Если вы измените переменную backendAddressPoolsName во втором шаблоне, это решит проблему.

Если вам нужно развернуть этот шаблон несколько раз, вы можете создать уникальное имя, изменив переменную на что-то вроде этого

"backendAddressPoolsName": "[toLower(concat(parameters('BaseName'), uniqueString(resourceGroup().id)))]",

Это создаст уникальную строку на основе идентификатора группы ресурсов. Это означает, что вы можете без проблем развернуть несколько групп ресурсов из одного шаблона.

person Michael B    schedule 07.04.2016
comment
Я снова развертываю его, чтобы обновить существующий шлюз и масштабируемый набор. Я не собираюсь добавлять еще один шлюз и масштабный набор. - person Tom Deseyn; 07.04.2016

Что вы пытаетесь изменить при повторном развертывании шаблона?

Для повторного развертывания вам не нужно указывать все свойства VMSS, такие как сеть, и связанные ресурсы, такие как шлюз приложений, только свойство sku VMSS и любые свойства, которые вы специально изменяете.

person sendmarsh    schedule 08.04.2016

Я связался с командой Azure, и они сообщили мне, что это ошибка на их стороне, которая будет исправлена ​​в следующем выпуске NRP.

Изменить: эта ошибка была решена.

person Tom Deseyn    schedule 09.04.2016