Как исправить сбой развертывания VMSS с ошибкой «неизвестная ошибка выделения сети» - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь развернуть 3-уровневую архитектуру в Azure с помощью интерфейса командной строки Azure PowerShell и настраиваемого шаблона ARM с параметрами. У меня нет проблем с сценарием powershell или с действительностью шаблона.

Внутри шаблона, помимо прочего, есть два набора масштабов виртуальных машин: один для внешнего интерфейса и один для внутреннего. Передний конец - окна, и задний конец - красная шляпа. Внешний интерфейс находится за шлюзом приложений, а внутренний - за балансировщиком нагрузки. Что странно, так это то, что интерфейсный VMSS развертывается без проблем и все хорошо. Внутренний VMSS дает сбой каждый раз, когда я пытаюсь развернуть его, с расплывчатым сообщением «Неизвестная ошибка распределения сети», в котором я понятия не имею, как отлаживать (так как он не предоставляет специфики в отличие от всех моих других сообщений об ошибках до сих пор).

Я основал шаблон ARM на экспортированном шаблоне из рабочей модели этой архитектуры в другой группе ресурсов, изменил параметры и потратил некоторое время на устранение проблем и ошибок с помощью экспортированного шаблона Azure. Я попытался удалить и начать с нуля, но это, похоже, не решает эту проблему. Я думал, что возможно, я достиг предела процессоров с бесплатной подпиской, поэтому я попытался сделать внешний VMSS зависимым от внутреннего VMSS, чтобы сначала был создан внутренний VMSS, но та же проблема все еще возникала.

Вот внутренняя часть шаблона VMSS:

{
      "type": "Microsoft.Compute/virtualMachineScaleSets",
      "apiVersion": "2018-10-01",
      "name": "[parameters('virtualMachineScaleSets_JakeAppBESS_name')]",
      "location": "westus2",
      "dependsOn": [
        "[parameters('loadBalancers_JakeAppBESSlb_name')]"
      ],
      "sku": {
        "name": "Standard_B1ls",
        "tier": "Standard",
        "capacity": 1
      },
      "properties": {
        "singlePlacementGroup": true,
        "upgradePolicy": {
          "mode": "Manual"
        },
        "virtualMachineProfile": {
          "osProfile": {
            "computerNamePrefix": "jakeappbe",
            "adminUsername": "Jake",
            "adminPassword": "[parameters('JakeApp_Password')]",
            "linuxConfiguration": {
              "disablePasswordAuthentication": false,
              "provisionVMAgent": true
            },
            "secrets": []
          },
          "storageProfile": {
            "osDisk": {
              "createOption": "FromImage",
              "caching": "ReadWrite",
              "managedDisk": {
                "storageAccountType": "Premium_LRS"
              }
            },
            "imageReference": {
              "publisher": "RedHat",
              "offer": "RHEL",
              "sku": "7.4",
              "version": "latest"
            }
          },
          "networkProfile": {
            "networkInterfaceConfigurations": [
              {
                "name": "[concat(parameters('virtualMachineScaleSets_JakeAppBESS_name'), 'Nic')]",
                "properties": {
                  "primary": true,
                  "enableAcceleratedNetworking": false,
                  "dnsSettings": {
                    "dnsServers": []
                  },
                  "enableIPForwarding": false,
                  "ipConfigurations": [
                    {
                      "name": "[concat(parameters('virtualMachineScaleSets_JakeAppBESS_name'), 'IpConfig')]",
                      "properties": {
                        "subnet": {
                          "id": "[concat('/subscriptions/', parameters('subscription_id'), '/resourceGroups/', parameters('resource_Group'), '/providers/Microsoft.Network/virtualNetworks/', parameters('virtualNetworks_JakeAppVnet_name'), '/subnets/BEsubnet')]"
                        },
                        "privateIPAddressVersion": "IPv4",
                        "loadBalancerBackendAddressPools": [
                          {
                            "id": "[concat('/subscriptions/', parameters('subscription_id'), '/resourceGroups/', parameters('resource_Group'), '/providers/Microsoft.Network/loadBalancers/', parameters('loadBalancers_JakeAppBESSlb_name'), '/backendAddressPools/bepool')]"
                          }
                        ],
                        "loadBalancerInboundNatPools": [
                          {
                            "id": "[concat('/subscriptions/', parameters('subscription_id'), '/resourceGroups/', parameters('resource_Group'), '/providers/Microsoft.Network/loadBalancers/', parameters('loadBalancers_JakeAppBESSlb_name'), '/inboundNatPools/natpool')]"
                          }
                        ]
                      }
                    }
                  ]
                }
              }
            ]
          },
          "priority": "Regular"
        },
        "overprovision": true
      }
    },


For reference, here's the front-end VMSS's part of the template so you can compare and see that there aren't many differences:

`    {
      "type": "Microsoft.Compute/virtualMachineScaleSets",
      "apiVersion": "2018-10-01",
      "name": "[parameters('virtualMachineScaleSets_JakeAppFESS_name')]",
      "location": "westus2",
      "dependsOn": [
        "[parameters('applicationGateways_JakeAppFE_AG_name')]",
      ],
      "sku": {
        "name": "Standard_B1ls",
        "tier": "Standard",
        "capacity": 1
      },
      "properties": {
        "singlePlacementGroup": true,
        "upgradePolicy": {
          "mode": "Manual"
        },
        "virtualMachineProfile": {
          "osProfile": {
            "computerNamePrefix": "jakeappfe",
            "adminUsername": "Jake",
            "adminPassword": "[parameters('JakeApp_Password')]",
            "windowsConfiguration": {
              "provisionVMAgent": true,
              "enableAutomaticUpdates": true
            },
            "secrets": []
          },
          "storageProfile": {
            "osDisk": {
              "createOption": "FromImage",
              "caching": "ReadWrite",
              "managedDisk": {
                "storageAccountType": "Premium_LRS"
              }
            },
            "imageReference": {
              "publisher": "MicrosoftWindowsServer",
              "offer": "WindowsServer",
              "sku": "2016-Datacenter",
              "version": "latest"
            }
          },
          "networkProfile": {
            "networkInterfaceConfigurations": [
              {
                "name": "[concat(parameters('virtualMachineScaleSets_JakeAppFESS_name'), 'Nic')]",
                "properties": {
                  "primary": true,
                  "enableAcceleratedNetworking": false,
                  "dnsSettings": {
                    "dnsServers": []
                  },
                  "enableIPForwarding": false,
                  "ipConfigurations": [
                    {
                      "name": "[concat(parameters('virtualMachineScaleSets_JakeAppFESS_name'), 'IpConfig')]",
                      "properties": {
                        "subnet": {
                          "id": "[concat('/subscriptions/', parameters('subscription_id'), '/resourceGroups/', parameters('resource_Group'), '/providers/Microsoft.Network/virtualNetworks/', parameters('virtualNetworks_JakeAppVnet_name'), '/subnets/FEsubnet')]"
                        },
                        "privateIPAddressVersion": "IPv4",
                        "applicationGatewayBackendAddressPools": [
                          {
                            "id": "[concat('/subscriptions/', parameters('subscription_id'), '/resourceGroups/', parameters('resource_Group'), '/providers/Microsoft.Network/applicationGateways/', parameters('applicationGateways_JakeAppFE_AG_name'), '/backendAddressPools/appGatewayBackendPool')]"
                          }
                        ]
                      }
                    }
                  ]
                }
              }
            ]
          },
          "priority": "Regular"
        },
        "overprovision": true
      }
    },

Я ожидал, что они будут вести себя одинаково. Конечно, back-end - это RH linux, в то время как front-end - это windows, а front-end - за шлюзом приложений, а back-end - за балансировщиком нагрузки, но эта настройка прекрасно работает в другой моей группе ресурсов, которая была развертывается через портал, а не через ARM. Но каждый раз, когда я пытаюсь развернуть это, я получаю эту ошибку:

New-AzureRmResourceGroupDeployment : 1:30:56 AM - Resource Microsoft.Compute/virtualMachineScaleSets 'ProdBESS' failed with message '{
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "NetworkingInternalOperationError",
        "message": "Unknown network allocation error."
      }
    ]
  }
}'

1 Ответ

0 голосов
/ 18 мая 2019

Хорошо, я, наконец, выяснил, в чем проблема, поэтому, если кто-то ищет, найдет этот поток в будущем с такой же ошибкой:

Очевидно, часть шаблона, связанная с балансировщиком нагрузки для VMSS (которыйбыл экспортирован из портала Azure) имел два конфликтующих входящих пула nat (перекрывающиеся диапазоны портов).После того как я удалил часть шаблона, создав конфликтующий дополнительный пул nat, мой VMSS был правильно развернут без проблем.

Понятия не имею, почему портал azure экспортировал мне шаблон с дополнительным пулом nat, которого никогда не было (тамбыло только 1 на исходном LB, из которого я экспортировал шаблон).

...