Краткое руководство. Создание масштабируемого набора виртуальных машин с помощью Azure PowerShellQuickstart: Create a virtual machine scale set with Azure PowerShell

Масштабируемый набор виртуальных машин позволяет развернуть набор виртуальных машин с возможностью автомасштабирования и управлять этим набором.A virtual machine scale set allows you to deploy and manage a set of autoscaling virtual machines. Вы можете вручную изменить число виртуальных машин в масштабируемом наборе или определить правила для автоматического масштабирования в зависимости от использования ЦП, объема памяти или сетевого трафика.You can scale the number of VMs in the scale set manually, or define rules to autoscale based on resource usage like CPU, memory demand, or network traffic. После этого Azure Load Balancer будет распределять трафик между экземплярами виртуальных машин в масштабируемом наборе.An Azure load balancer then distributes traffic to the VM instances in the scale set. При работе с этим кратким руководством вы создадите масштабируемый набор виртуальных машин и развернете пример приложения с помощью Azure PowerShell.In this quickstart, you create a virtual machine scale set and deploy a sample application with Azure PowerShell.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.If you don't have an Azure subscription, create a free account before you begin.

Использование Azure Cloud ShellUse Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Начало работы с Azure Cloud ShellTo start Azure Cloud Shell:

ПараметрOption Пример и ссылкаExample/Link
Нажмите кнопку Попробовать в правом верхнем углу блока с кодом.Select Try It in the upper-right corner of a code block. При нажатии кнопки Попробовать код не копируется в Cloud Shell автоматически.Selecting Try It doesn't automatically copy the code to Cloud Shell. Открытие Azure Cloud Shell с помощью кнопки "Попробовать"
Перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell, чтобы открыть Cloud Shell в браузере.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Запуск Cloud Shell в новом окнеLaunch Cloud Shell in a new window
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Кнопка "Cloud Shell" на портале Azure

Чтобы выполнить код из этой статьи в Azure Cloud Shell, выполните следующие действия:To run the code in this article in Azure Cloud Shell:

  1. Запустите Cloud Shell.Start Cloud Shell.

  2. В блоке кода нажмите кнопку Копировать, чтобы скопировать код.Select the Copy button on a code block to copy the code.

  3. Вставьте код в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Нажмите клавишу ВВОД, чтобы выполнить код.Select Enter to run the code.

Создание масштабируемого набораCreate a scale set

Перед созданием масштабируемого набора выполните команду New-AzResourceGroup, чтобы создать группу ресурсов.Before you can create a scale set, create a resource group with New-AzResourceGroup. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.The following example creates a resource group named myResourceGroup in the eastus location:

New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"

Теперь создайте масштабируемый набор виртуальных машин с помощью командлета New-AzVmss.Now create a virtual machine scale set with New-AzVmss. В следующем примере создается масштабируемый набор с именем myScaleSet, использующий образ платформы Windows Server 2016 Datacenter.The following example creates a scale set named myScaleSet that uses the Windows Server 2016 Datacenter platform image. Сетевые ресурсы Azure для виртуальной сети, общедоступный IP-адрес и подсистема балансировки нагрузки создаются автоматически.The Azure network resources for virtual network, public IP address, and load balancer are automatically created. При появлении запроса можно задать собственные административные учетные данные для экземпляров виртуальных машин в масштабируемом наборе:When prompted, you can set your own administrative credentials for the VM instances in the scale set:

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -VMScaleSetName "myScaleSet" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -UpgradePolicyMode "Automatic"

Создание и настройка всех ресурсов и виртуальных машин масштабируемого набора занимает несколько минут.It takes a few minutes to create and configure all the scale set resources and VMs.

Разверните пример приложенияDeploy sample application

Для проверки масштабируемого набора установите базовое веб-приложение.To test your scale set, install a basic web application. Расширение пользовательского скрипта Azure используется для скачивания и запуска скрипта, который устанавливает IIS на экземплярах виртуальных машин.The Azure Custom Script Extension is used to download and run a script that installs IIS on the VM instances. Это расширение можно использовать для настройки после развертывания, установки программного обеспечения и других задач настройки или управления.This extension is useful for post deployment configuration, software installation, or any other configuration / management task. Дополнительные сведения см. в статье Расширение Custom Script в ОС Windows.For more information, see the Custom Script Extension overview.

Использование расширения пользовательских скриптов для установки базового веб-сервера IISUse the Custom Script Extension to install a basic IIS web server. Примените расширение пользовательского скрипта, которое устанавливает IIS, как показано ниже:Apply the Custom Script Extension that installs IIS as follows:

# Define the script for your Custom Script Extension to run
$publicSettings = @{
    "fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate-iis.ps1");
    "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File automate-iis.ps1"
}

# Get information about the scale set
$vmss = Get-AzVmss `
            -ResourceGroupName "myResourceGroup" `
            -VMScaleSetName "myScaleSet"

# Use Custom Script Extension to install IIS and configure basic website
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
    -Name "customScript" `
    -Publisher "Microsoft.Compute" `
    -Type "CustomScriptExtension" `
    -TypeHandlerVersion 1.8 `
    -Setting $publicSettings

# Update the scale set and apply the Custom Script Extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet" `
    -VirtualMachineScaleSet $vmss

Разрешение передачи трафика в приложениеAllow traffic to application

Чтобы разрешить доступ к базовому веб-приложению, создайте сетевую группу безопасности с помощью командлетов New-AzNetworkSecurityRuleConfig и New-AzNetworkSecurityGroup.To allow access to the basic web application, create a network security group with New-AzNetworkSecurityRuleConfig and New-AzNetworkSecurityGroup. Дополнительные сведения см. в статье Сеть для масштабируемых наборов виртуальных машин Azure.For more information, see Networking for Azure virtual machine scale sets.

# Get information about the scale set
$vmss = Get-AzVmss `
            -ResourceGroupName "myResourceGroup" `
            -VMScaleSetName "myScaleSet"

#Create a rule to allow traffic over port 80
$nsgFrontendRule = New-AzNetworkSecurityRuleConfig `
  -Name myFrontendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

#Create a network security group and associate it with the rule
$nsgFrontend = New-AzNetworkSecurityGroup `
  -ResourceGroupName  "myResourceGroup" `
  -Location EastUS `
  -Name myFrontendNSG `
  -SecurityRules $nsgFrontendRule

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName  "myResourceGroup" `
  -Name myVnet

$frontendSubnet = $vnet.Subnets[0]

$frontendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name mySubnet `
  -AddressPrefix $frontendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgFrontend

Set-AzVirtualNetwork -VirtualNetwork $vnet

# Update the scale set and apply the Custom Script Extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet" `
    -VirtualMachineScaleSet $vmss

Проверка масштабируемого набораTest your scale set

Чтобы увидеть, как работает масштабируемый набор, откройте пример веб-приложения в браузере.To see your scale set in action, access the sample web application in a web browser. Получите общедоступный IP-адрес своей подсистемы балансировки нагрузки с помощью командлета Get-AzPublicIpAddress.Get the public IP address of your load balancer with Get-AzPublicIpAddress. Следующий пример кода отображает IP-адрес, созданный в группе ресурсов myResourceGroup:The following example displays the IP address created in the myResourceGroup resource group:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select IpAddress

Введите в браузере общедоступный IP-адрес подсистемы балансировки нагрузки.Enter the public IP address of the load balancer in to a web browser. Подсистема балансировки нагрузки передаст запрос на один из экземпляров виртуальной машины, как показано в следующем примере:The load balancer distributes traffic to one of your VM instances, as shown in the following example:

Выполнение сайта IIS

Очистка ресурсовClean up resources

Вы можете удалить ненужную группу ресурсов, масштабируемый набор и все связанные ресурсы с помощью командлета Remove-AzResourceGroup, как показано ниже.When no longer needed, you can use the Remove-AzResourceGroup to remove the resource group, scale set, and all related resources as follows. Параметр -Force подтверждает, что вы хотите удалить ресурсы без дополнительного запроса.The -Force parameter confirms that you wish to delete the resources without an additional prompt to do so. При использовании параметра -AsJob управление возвращается в командную строку без ожидания завершения операции.The -AsJob parameter returns control to the prompt without waiting for the operation to complete.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

Дальнейшие действияNext steps

С помощью этого краткого руководства вы создали простой масштабируемый набор и использовали расширение пользовательского скрипта, чтобы установить базовый веб-сервер IIS на экземплярах виртуальных машин.In this quickstart, you created a basic scale set and used the Custom Script Extension to install a basic IIS web server on the VM instances. Чтобы получить дополнительные сведения, продолжите роботу с руководством по созданию масштабируемых наборов виртуальных машин Azure и управлению ими.To learn more, continue to the tutorial for how to create and manage Azure virtual machine scale sets.