Сеть для Azure Масштабируемые наборы виртуальных машин

При развертывании масштабируемого набора виртуальных машин Azure на портале некоторые сетевые свойства по умолчанию используются, например Azure Load Balancer с правилами NAT для входящего трафика. В этой статье описывается, как использовать некоторые расширенные сетевые функции, которые можно настроить с помощью наборов масштабирования.

Вы можете настроить все функции, описанные в этой статье, с помощью шаблонов Azure Resource Manager. Кроме того, будут добавлены примеры Azure CLI и PowerShell для выбранных компонентов.

Примечание.

Перемещение масштабируемого набора виртуальных машин из одной виртуальной сети в другую виртуальную сеть невозможно. Необходимо повторно создать масштабируемый набор в целевой виртуальной сети.

Ускорение работы в сети

Ускорение работы в сети Azure достигается за счет виртуализации ввода-вывода с единым корнем (SR-IOV) для виртуальной машины. Дополнительные сведения см. в разделах об ускорении работы в сети для виртуальных машин Windows или Linux. Чтобы использовать ускоренную сеть с масштабируемыми наборами, в настройках networkInterfaceConfigurations масштабируемого набора задайте для параметра enableAcceleratedNetworking значение true. Например:

"networkProfile": {
    "networkInterfaceConfigurations": [
    {
      "name": "niconfig1",
      "properties": {
        "primary": true,
        "enableAcceleratedNetworking" : true,
        "ipConfigurations": [
          ...
        ]
      }
    }
   ]
}

Azure Масштабируемые наборы виртуальных машин с Azure Load Balancer

Дополнительные сведения о настройке Load Balancer (цен. категория "Стандартный") с помощью масштабируемых наборов виртуальных машин на основе вашего сценария см. в разделе Azure Load Balancer и масштабируемые наборы виртуальных машин.

Добавление масштабируемого набора виртуальных машин в Шлюз приложений

Чтобы добавить масштабируемый набор в внутренний пул Шлюз приложений, обратитесь к Шлюз приложений серверному пулу в сетевом профиле масштабируемого набора. Это можно сделать либо при создании масштабируемого набора (см. шаблон ARM ниже) либо в существующем масштабируемом наборе.

Добавление единого Масштабируемые наборы виртуальных машин оркестрации в Шлюз приложений

При добавлении единого Масштабируемые наборы виртуальных машин в серверный пул Шлюз приложений процесс будет отличаться для новых или существующих масштабируемых наборов:

  • Для новых масштабируемых наборов обратитесь к идентификатору внутреннего пула Шлюз приложений в сетевом профиле модели масштабируемого набора в одном или нескольких IP-конфигурациях сетевого интерфейса. При развертывании экземпляры, добавленные в масштабируемый набор, будут помещены в серверный пул Шлюз приложений.
  • Для существующих масштабируемых наборов сначала добавьте идентификатор серверного пула Шлюз приложений в сетевом профиле модели масштабируемого набора, а затем примените модель существующих экземпляров к обновлению. Если политика обновления масштабируемого набора или Automatic Rolling, экземпляры будут обновлены для вас. Если это Manualтак, необходимо вручную обновить экземпляры.
  1. Создайте пул Шлюз приложений и серверной части в том же регионе, что и масштабируемый набор, если у вас еще нет пула
  2. Перейдите к масштабируемой группе виртуальных машин на портале
  3. В разделе "Параметры" откройте панель "Сеть"
  4. На панели "Сеть" выберите вкладку балансировки нагрузки и нажмите кнопку "Добавить балансировку нагрузки"
  5. Выберите Шлюз приложений в раскрывающемся списке "Параметры балансировки нагрузки" и выберите существующий Шлюз приложений
  6. Выберите целевой серверный пул и нажмите кнопку "Сохранить"
  7. Если политика обновления масштабируемого набора — "Вручную", перейдите в область "Параметры>экземпляров", чтобы выбрать и обновить каждый экземпляр.

Добавление гибкой оркестрации Масштабируемые наборы виртуальных машин в Шлюз приложений

При добавлении гибкого масштабируемого набора в Шлюз приложений процесс совпадает с добавлением автономных виртуальных машин в серверный пул Шлюз приложений— вы обновляете ip-конфигурацию сетевого интерфейса виртуальной машины, чтобы быть частью внутреннего пула. Это можно сделать либо с помощью конфигурации Шлюз приложений, либо путем настройки конфигурации сетевого интерфейса виртуальной машины.

Примечание.

Обратите внимание, что шлюз приложений должен находиться в той же виртуальной сети, что и масштабируемый набор, но в другой подсети.

Настраиваемые параметры DNS

По умолчанию наборы масштабирования принимают определенные параметры DNS виртуальной сети и подсети, в которых они были созданы. Однако вы можете настроить параметры DNS непосредственно для набора масштабирования.

Создание масштабируемого набора с настраиваемыми DNS-серверами

Чтобы создать масштабируемый набор с настраиваемой конфигурацией DNS с помощью Azure CLI, добавьте в команду vmss create аргумент --dns-servers, за которым следуют разделенные пробелами IP-адреса серверов. Например:

--dns-servers 10.0.0.6 10.0.0.5

Чтобы настроить пользовательские DNS-серверы в шаблоне Azure, добавьте свойство dnsSettings в раздел networkInterfaceConfigurations набора масштабирования. Например:

"dnsSettings":{
    "dnsServers":["10.0.0.6", "10.0.0.5"]
}

Создание масштабируемого набора с настраиваемыми именами доменов виртуальных машин

Чтобы создать масштабируемый набор с настраиваемым DNS-именем для виртуальных машин с помощью интерфейса командной строки, добавьте аргумент --vm-domain-name в команду создания масштабируемого набора виртуальных машин, а затем строку, представляющую доменное имя.

Чтобы настроить доменное имя в шаблоне Azure, добавьте свойство dnsSettings в раздел масштабируемого набора networkInterfaceConfigurations. Например:

"networkProfile": {
  "networkInterfaceConfigurations": [
    {
    "name": "nic1",
    "properties": {
      "primary": true,
      "ipConfigurations": [
      {
        "name": "ip1",
        "properties": {
          "subnet": {
            "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('vnetName'), '/subnets/subnet1')]"
          },
          "publicIPAddressconfiguration": {
            "name": "publicip",
            "properties": {
            "idleTimeoutInMinutes": 10,
              "dnsSettings": {
                "domainNameLabel": "[parameters('vmssDnsName')]"
              }
            }
          }
        }
      }
    ]
    }
}

Выходные данные для DNS-имени отдельной виртуальной машины будут представлены следующим образом:

<vm><vmindex>.<specifiedVmssDomainNameLabel>

Общедоступный IPv4 на каждую виртуальную машину

Как правило, виртуальным машинам в масштабируемом наборе Azure не требуются собственные общедоступные IP-адреса. Для большинства сценариев наиболее безопасно, а также экономически целесообразно связать общедоступный IP-адрес с подсистемой балансировки нагрузки или отдельной виртуальной машиной (также называемой jumpbox), которая затем (при необходимости) направит входящие подключения на виртуальные машины в масштабируемом наборе (например, через правила преобразования сетевых адресов для входящих подключений).

Тем не менее, в некоторых сценариях виртуальным машинам в масштабируемом наборе обязательно нужны собственные общедоступные IP-адреса. В качестве примера можно привести игры, в которых консоли необходимо установить прямое подключение к облачной виртуальной машине, выполняющей физическую обработку игр. Другим примером можно назвать случай, когда виртуальным машинам необходимо установить внешние подключения между собой в регионах в распределенной базе данных.

Создание масштабируемого набора с общедоступным IP-адресом на виртуальную машину

Чтобы создать масштабируемый набор, который назначает общедоступный IP-адрес каждой виртуальной машине с помощью CLI, добавьте параметр --public-ip-per-vm в команду vmss create.

Чтобы создать масштабируемый набор с помощью шаблона Azure версии API ресурса Microsoft.Compute/virtualMachineScaleSets должна быть по крайней мере 30-03-2017. Добавьте свойство JSON publicIpAddressConfiguration в раздел ipConfigurations масштабируемого набора. Например:

"publicIpAddressConfiguration": {
    "name": "pub1",
    "sku": {
      "name": "Standard"
    },
    "properties": {
      "idleTimeoutInMinutes": 15
    }
}

Обратите внимание, что при создании Масштабируемые наборы виртуальных машин с общедоступными IP-адресами для каждого экземпляра с подсистемой балансировки нагрузки перед ним определяется номер SKU подсистемы балансировки нагрузки (т. е. базовый или стандартный). Если масштабируемый набор виртуальных машин создается без подсистемы балансировки нагрузки, SKU ip-адресов экземпляра можно задать непосредственно с помощью раздела SKU шаблона, как показано выше.

Пример шаблона с использованием Load Balancer уровня "Базовый": vmss-public-ip-linux

Кроме того, префикс общедоступного IP-адреса (смежный блок общедоступных IP-адресов SKU уровня "Стандартный") можно использовать для создания IP-адресов уровня экземпляра в масштабируемом наборе виртуальных машин. Свойства зоны префикса будут переданы IP-адресам экземпляра, хотя они но не будут отображены в результатах.

Пример шаблона с префиксом общедоступного IP-адреса: vmms-with-public-ip-prefix

Запрос общедоступных IP-адресов виртуальных машин в масштабируемом наборе

Чтобы получить список общедоступных IP-адресов, назначенных виртуальным машинам в масштабируемом наборе, с помощью CLI, используйте команду az vmss list-instance-public-ips.

Используйте команду Get-AzPublicIpAddress, чтобы вывести список общедоступных IP-адресов масштабируемого набора, используя PowerShell. Например:

Get-AzPublicIpAddress -ResourceGroupName myrg -VirtualMachineScaleSetName myvmss

Вы также можете запрашивать общедоступные IP-адреса, напрямую ссылаясь на идентификатор ресурса конфигурации общедоступного IP-адреса. Например:

Get-AzPublicIpAddress -ResourceGroupName myrg -Name myvmsspip

Вы также можете отобразить общедоступные IP-адреса, назначенные виртуальным машинам в масштабируемом наборе, с помощью обозревателя ресурсов Azure или Azure REST API версии 2017-03-30 или выше.

Чтобы отправить запрос в обозреватель ресурсов Azure, сделайте следующее.

  1. В веб-браузере откройте обозреватель ресурсов Azure.
  2. В левой части окна разверните подписки, щелкнув + рядом с ними. Если в подписках всего один элемент, он может быть уже развернут.
  3. Разверните подписки.
  4. Разверните группу ресурсов.
  5. Разверните поставщики.
  6. Разверните Microsoft.Compute.
  7. Разверните virtualMachineScaleSets.
  8. Разверните масштабируемый набор.
  9. Щелкните publicipaddresses.

Чтобы отправить запрос в Azure REST API, сделайте следующее:

GET https://management.azure.com/subscriptions/{your sub ID}/resourceGroups/{RG name}/providers/Microsoft.Compute/virtualMachineScaleSets/{scale set name}/publicipaddresses?api-version=2017-03-30

Пример выходных данных из Azure Resource Explorer и Azure REST API:

{
  "value": [
    {
      "name": "pub1",
      "id": "/subscriptions/your-subscription-id/resourceGroups/your-rg/providers/Microsoft.Compute/virtualMachineScaleSets/pipvmss/virtualMachines/0/networkInterfaces/pipvmssnic/ipConfigurations/yourvmssipconfig/publicIPAddresses/pub1",
      "etag": "W/\"a64060d5-4dea-4379-a11d-b23cd49a3c8d\"",
      "properties": {
        "provisioningState": "Succeeded",
        "resourceGuid": "ee8cb20f-af8e-4cd6-892f-441ae2bf701f",
        "ipAddress": "13.84.190.11",
        "publicIPAddressVersion": "IPv4",
        "publicIPAllocationMethod": "Dynamic",
        "idleTimeoutInMinutes": 15,
        "ipConfiguration": {
          "id": "/subscriptions/your-subscription-id/resourceGroups/your-rg/providers/Microsoft.Compute/virtualMachineScaleSets/yourvmss/virtualMachines/0/networkInterfaces/yourvmssnic/ipConfigurations/yourvmssipconfig"
        }
      }
    },
    {
      "name": "pub1",
      "id": "/subscriptions/your-subscription-id/resourceGroups/your-rg/providers/Microsoft.Compute/virtualMachineScaleSets/yourvmss/virtualMachines/3/networkInterfaces/yourvmssnic/ipConfigurations/yourvmssipconfig/publicIPAddresses/pub1",
      "etag": "W/\"5f6ff30c-a24c-4818-883c-61ebd5f9eee8\"",
      "properties": {
        "provisioningState": "Succeeded",
        "resourceGuid": "036ce266-403f-41bd-8578-d446d7397c2f",
        "ipAddress": "13.84.159.176",
        "publicIPAddressVersion": "IPv4",
        "publicIPAllocationMethod": "Dynamic",
        "idleTimeoutInMinutes": 15,
        "ipConfiguration": {
          "id": "/subscriptions/your-subscription-id/resourceGroups/your-rg/providers/Microsoft.Compute/virtualMachineScaleSets/yourvmss/virtualMachines/3/networkInterfaces/yourvmssnic/ipConfigurations/yourvmssipconfig"
        }
      }
    }

Несколько IP-адресов на сетевой адаптер

У каждого сетевого адаптера, подключенного к виртуальной машине в масштабируемом наборе, может быть одна или несколько конфигураций IP-адресов. Каждая конфигурация получает один частный IP-адрес. Кроме того, каждой конфигурации также может быть присвоен один ресурс общедоступного IP-адреса. Чтобы узнать, сколько IP-адресов можно назначить сетевому адаптеру, а также сколько общедоступных IP-адресов можно использовать в подписке Azure, ознакомьтесь с ограничениями Azure.

Несколько сетевых адаптеров на виртуальную машину

У вам может быть до 8 сетевых адаптеров на виртуальную машину в зависимости от размера машины. Узнать о максимальном количестве сетевых адаптеров на машину вы можете в статье Размеры виртуальных машин Windows в Azure. Все сетевые адаптеры, подключенные к экземпляру виртуальной машины, должны быть подключены к одной виртуальной сети. Сетевые адаптеры могут подключаться к разным подсетям, но все подсети должны быть частью одной и той же виртуальной сети.

Пример ниже представляет сетевой профиль в масштабируемом наборе, отображающий несколько записей сетевых адаптеров, а также несколько общедоступных IP-адресов на виртуальную машину:

"networkProfile": {
    "networkInterfaceConfigurations": [
        {
        "name": "nic1",
        "properties": {
            "primary": true,
            "ipConfigurations": [
            {
                "name": "ip1",
                "properties": {
                "subnet": {
                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('vnetName'), '/subnets/subnet1')]"
                },
                "publicipaddressconfiguration": {
                    "name": "pub1",
                    "properties": {
                    "idleTimeoutInMinutes": 15
                    }
                },
                "loadBalancerInboundNatPools": [
                    {
                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('lbName'), '/inboundNatPools/natPool1')]"
                    }
                ],
                "loadBalancerBackendAddressPools": [
                    {
                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('lbName'), '/backendAddressPools/addressPool1')]"
                    }
                ]
                }
            }
            ]
        }
        },
        {
        "name": "nic2",
        "properties": {
            "primary": false,
            "ipConfigurations": [
            {
                "name": "ip1",
                "properties": {
                "subnet": {
                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('vnetName'), '/subnets/subnet1')]"
                },
                "publicipaddressconfiguration": {
                    "name": "pub1",
                    "properties": {
                    "idleTimeoutInMinutes": 15
                    }
                },
                "loadBalancerInboundNatPools": [
                    {
                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('lbName'), '/inboundNatPools/natPool1')]"
                    }
                ],
                "loadBalancerBackendAddressPools": [
                    {
                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('lbName'), '/backendAddressPools/addressPool1')]"
                    }
                ]
                }
            }
            ]
        }
        }
    ]
}

Группа безопасности сети и группы безопасности приложений на масштабируемый набор

Группы безопасности сети позволяют отфильтровать входящий и исходящий трафик ресурсов Azure в виртуальной сети Azure с помощью правил безопасности. Группы безопасности приложений позволяют обеспечить сетевую безопасность ресурсов Azure и сгруппировать их как расширение в структуре приложения.

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

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

Например:

"networkProfile": {
    "networkInterfaceConfigurations": [
        {
            "name": "nic1",
            "properties": {
                "primary": true,
                "ipConfigurations": [
                    {
                        "name": "ip1",
                        "properties": {
                            "subnet": {
                                "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('vnetName'), '/subnets/subnet1')]"
                            },
                            "applicationSecurityGroups": [
                                {
                                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/applicationSecurityGroups/', variables('asgName'))]"
                                }
                            ],
                "loadBalancerInboundNatPools": [
                                {
                                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('lbName'), '/inboundNatPools/natPool1')]"
                                }
                            ],
                            "loadBalancerBackendAddressPools": [
                                {
                                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('lbName'), '/backendAddressPools/addressPool1')]"
                                }
                            ]
                        }
                    }
                ],
                "networkSecurityGroup": {
                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/networkSecurityGroups/', variables('nsgName'))]"
                }
            }
        }
    ]
}

Чтобы подтвердить, что группа безопасности сети связана с масштабируемым набором, используйте команду az vmss show. В приведенном ниже примере используется --query для фильтрации результатов и отображается только соответствующая секция выходных данных.

az vmss show \
    -g myResourceGroup \
    -n myScaleSet \
    --query virtualMachineProfile.networkProfile.networkInterfaceConfigurations[].networkSecurityGroup

[
  {
    "id": "/subscriptions/.../resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/nsgName",
    "resourceGroup": "myResourceGroup"
  }
]

Чтобы убедиться, что группа безопасности приложений связана с масштабируемым набором, используйте команду az vmss show. В приведенном ниже примере используется --query для фильтрации результатов и отображается только соответствующая секция выходных данных.

az vmss show \
    -g myResourceGroup \
    -n myScaleSet \
    --query virtualMachineProfile.networkProfile.networkInterfaceConfigurations[].ipConfigurations[].applicationSecurityGroups

[
  [
    {
      "id": "/subscriptions/.../resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationSecurityGroups/asgName",
      "resourceGroup": "myResourceGroup"
    }
  ]
]

Внесение обновлений сети в определенные экземпляры

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

Для обновления конфигурации сети можно присвоить экземпляру PUT. Эту функцию можно использовать для выполнения таких действий, как добавление или удаление сетевых адаптеров или удаление экземпляра из серверного пула.

PUT https://management.azure.com/subscriptions/.../resourceGroups/vmssnic/providers/Microsoft.Compute/virtualMachineScaleSets/vmssnic/virtualMachines/1/?api-version=2019-07-01

В следующем примере показано, как добавить в сетевую карту вторую конфигурацию IP.

  1. GET сведения для конкретного экземпляра масштабируемого набора виртуальных машин.

    GET https://management.azure.com/subscriptions/.../resourceGroups/vmssnic/providers/Microsoft.Compute/virtualMachineScaleSets/vmssnic/virtualMachines/1/?api-version=2019-07-01
    

    Ниже показан упрощенный вариант, в котором показаны только сетевые параметры для этого примера.

    {
      ...
      "properties": {
        ...
        "networkProfileConfiguration": {
          "networkInterfaceConfigurations": [
            {
              "name": "vmssnic-vnet-nic01",
              "properties": {
                "primary": true,
                "enableAcceleratedNetworking": false,
                "networkSecurityGroup": {
                  "id": "/subscriptions/123a1a12-a123-1ab1-12a1-12a1a1234ab1/resourceGroups/vmssnic/providers/Microsoft.Network/networkSecurityGroups/basicNsgvmssnic-vnet-nic01"
                },
                "dnsSettings": {
                  "dnsServers": []
                },
                "enableIPForwarding": false,
                "ipConfigurations": [
                  {
                    "name": "vmssnic-vnet-nic01-defaultIpConfiguration",
                    "properties": {
                      "publicIPAddressConfiguration": {
                        "name": "publicIp-vmssnic-vnet-nic01",
                        "properties": {
                          "idleTimeoutInMinutes": 15,
                          "ipTags": [],
                          "publicIPAddressVersion": "IPv4"
                        }
                      },
                      "primary": true,
                      "subnet": {
                        "id": "/subscriptions/123a1a12-a123-1ab1-12a1-12a1a1234ab1/resourceGroups/vmssnic/providers/Microsoft.Network/virtualNetworks/vmssnic-vnet/subnets/default"
                      },
                      "privateIPAddressVersion": "IPv4"
                    }
                  }
                ]
              }
            }
          ]
        },
        ...
      }
    }
    
  2. PUT с экземпляром, выполнив обновив, чтобы добавить дополнительную IP-конфигурацию. Это похоже на добавление дополнительной networkInterfaceConfiguration.

    PUT https://management.azure.com/subscriptions/.../resourceGroups/vmssnic/providers/Microsoft.Compute/virtualMachineScaleSets/vmssnic/virtualMachines/1/?api-version=2019-07-01
    

    Ниже показан упрощенный вариант, в котором показаны только сетевые параметры для этого примера.

      {
      ...
      "properties": {
        ...
        "networkProfileConfiguration": {
          "networkInterfaceConfigurations": [
            {
              "name": "vmssnic-vnet-nic01",
              "properties": {
                "primary": true,
                "enableAcceleratedNetworking": false,
                "networkSecurityGroup": {
                  "id": "/subscriptions/123a1a12-a123-1ab1-12a1-12a1a1234ab1/resourceGroups/vmssnic/providers/Microsoft.Network/networkSecurityGroups/basicNsgvmssnic-vnet-nic01"
                },
                "dnsSettings": {
                  "dnsServers": []
                },
                "enableIPForwarding": false,
                "ipConfigurations": [
                  {
                    "name": "vmssnic-vnet-nic01-defaultIpConfiguration",
                    "properties": {
                      "publicIPAddressConfiguration": {
                        "name": "publicIp-vmssnic-vnet-nic01",
                        "properties": {
                          "idleTimeoutInMinutes": 15,
                          "ipTags": [],
                          "publicIPAddressVersion": "IPv4"
                        }
                      },
                      "primary": true,
                      "subnet": {
                        "id": "/subscriptions/123a1a12-a123-1ab1-12a1-12a1a1234ab1/resourceGroups/vmssnic/providers/Microsoft.Network/virtualNetworks/vmssnic-vnet/subnets/default"
                      },
                      "privateIPAddressVersion": "IPv4"
                    }
                  },
                  {
                    "name": "my-second-config",
                    "properties": {
                      "subnet": {
                        "id": "/subscriptions/123a1a12-a123-1ab1-12a1-12a1a1234ab1/resourceGroups/vmssnic/providers/Microsoft.Network/virtualNetworks/vmssnic-vnet/subnets/default"
                      },
                      "privateIPAddressVersion": "IPv4"
                    }
                  }
                ]
              }
            }
          ]
        },
        ...
      }
    }
    

Явное исходящее сетевое подключение для гибких масштабируемых наборов

Чтобы повысить безопасность сети по умолчанию, Масштабируемые наборы виртуальных машин с гибкой оркестрацией потребуется, чтобы экземпляры, созданные неявно с помощью профиля автомасштабирования, имели исходящее подключение, определенное явным образом с помощью одного из следующих методов:

  • В большинстве случаев рекомендуется использовать подключенный к подсети шлюз NAT.
  • В сценариях с высокими требованиями к безопасности или при использовании Брандмауэра Azure или сетевого виртуального модуля (NVA) можно указать настраиваемый определяемый пользователем маршрут в качестве следующего прыжка через брандмауэр.
  • Экземпляры находятся во внутреннем пуле Azure Load Balancer с SKU категории "Стандартный".
  • Подключение общедоступного IP-адреса к сетевому интерфейсу экземпляра.

При использовании виртуальных машин с одним экземпляром и Масштабируемые наборы виртуальных машин с универсальной оркестрацией исходящие подключения предоставляются автоматически.

В число распространенных сценариев, для которых требуется явное исходящее подключение, входят следующие:

  • Для активации виртуальной машины Windows потребуется определить исходящее подключение от экземпляра виртуальной машины к службе управления ключами (KMS) активации Windows. Дополнительные сведения см. в статье об устранении проблем с активацией виртуальных машин Windows.
  • Доступ к учетным записям хранения или Key Vault. Подключение к службам Azure также можно установить с помощью Приватного канала.

Дополнительные сведения об определении безопасных исходящих подключений см. в статье об исходящем доступе по умолчанию в Azure.

Следующие шаги

Дополнительные сведения о виртуальных сетях Azure см. в этой статье.