Руководство. Создание масштабируемого набора виртуальных машин и управление ими с помощью Azure PowerShell
Масштабируемый набор виртуальных машин позволяет развертывать набор виртуальных машин и управлять ими. На протяжении всего жизненного цикла масштабируемого набора виртуальных машин может потребоваться выполнить одну или несколько задач управления. Из этого руководства вы узнаете, как выполнить следующие задачи:
- Создание или изменение группы ресурсов
- Создание масштабируемого набора виртуальных машин
- Горизонтальное увеличение и уменьшение масштаба
- Остановка, запуск и перезапуск экземпляров виртуальных машин
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Azure Cloud Shell
В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.
Начало работы с Azure Cloud Shell
Вариант | Пример и ссылка |
---|---|
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. | |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. | |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
Создание или изменение группы ресурсов
Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими. Перед масштабируемым набором виртуальных машин необходимо создать группу ресурсов. Создайте группу ресурсов с помощью команды New-AzResourceGroup. В примере создается группа ресурсов под названием myResourceGroup в регионе EastUS.
New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"
Имя группы ресурсов указывается при создании или изменении масштабируемого набора в этом руководстве.
Создание масштабируемого набора виртуальных машин
Первым делом настройте имя и пароль администратора для экземпляров виртуальных машин с помощью командлета Get-Credential:
$cred = Get-Credential
Теперь создайте масштабируемый набор виртуальных машин с помощью New-AzVmss. Чтобы распределить трафик между отдельными экземплярами виртуальных машин, создается еще и подсистема балансировки нагрузки. Подсистема балансировки нагрузки включает правила для распределения трафика через TCP-порт 80 и разрешить трафик удаленного рабочего стола через TCP-порт 3389 и удаленное взаимодействие PowerShell через TCP-порт 5985:
Внимание
Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-OrchestrationMode "Flexible" `
-Location "EastUS" `
-Credential $cred
Создание и настройка всех ресурсов и экземпляров виртуальных машин масштабируемого набора занимает несколько минут. Чтобы распределить трафик между отдельными экземплярами виртуальных машин, создается еще и подсистема балансировки нагрузки.
Просмотр экземпляров виртуальных машин в масштабируемом наборе
Чтобы просмотреть список экземпляров виртуальных машин в масштабируемом наборе, используйте Get-AzVM следующим образом:
Get-AzVM -ResourceGroupName "myResourceGroup"
В следующем примере выходных данных показано два экземпляра виртуальной машины в масштабируемом наборе.
ResourceGroupName Name Location VmSize OsType ProvisioningState
----------------- ---- -------- ------ ------ -----------------
myResourceGroup myScaleSet_instance1 eastus Standard_DS1_v2 Windows Succeeded
myResourceGroup myScaleSet_instance2 eastus Standard_DS1_v2 Windows Succeeded
Чтобы просмотреть дополнительные сведения о конкретном экземпляре виртуальной машины, используйте Get-AzVM и укажите имя виртуальной машины.
Get-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"
ResourceGroupName : myresourcegroup
Id : /subscriptions/resourceGroups/myresourcegroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_instance1
VmId : d27b5fde-d469-4087-b08f-87d0bd8df786
Name : myScaleSet_instance1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
VirtualMachineScaleSet : {Id}
TimeCreated : 11/16/2022 11:02:02 PM
Создание масштабируемого набора с экземпляром виртуальной машины определенного размера
При создании масштабируемого набора в начале этого руководство для экземпляров виртуальной машины был указан стандартный номер SKU виртуальной машины Standard_D1_v2. Можно указать другой размер экземпляра виртуальной машины с -VMSize
параметром, чтобы указать размер экземпляра виртуальной машины Standard_F1.
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-OrchestrationMode "Flexible" `
-VMSize "Standard_F1" `
-Location "EastUS" `
-Credential $cred
Изменение емкости масштабируемого набора
При создании масштабируемого набора два экземпляра виртуальной машины были развернуты по умолчанию. Чтобы увеличить или уменьшить число экземпляров виртуальных машин в масштабируемом наборе, можно изменить его емкость вручную. Масштабируемый набор создает или удаляет необходимое количество экземпляров виртуальной машины, а затем настраивает подсистему балансировки нагрузки для распределения трафика.
Сначала создайте объект масштабируемого набора с помощью командлета Get-AzVmss, затем укажите новое значение для sku.capacity
. С помощью командлета Update-AzVmss примените изменение емкости. В следующем примере число экземпляров виртуальных машин в масштабируемом наборе определяется равным 3:
# Get current scale set
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
# Set and update the capacity of your scale set
$vmss.sku.capacity = 3
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss
Обновление емкости масштабируемого набора занимает несколько минут. Чтобы просмотреть количество экземпляров, которые теперь есть в масштабируемом наборе, используйте Get-Az:
Get-AzVm -ResourceGroupName "myResourceGroup"
В следующем примере выходных данных показано, что емкость масштабируемого набора равна 3.
ResourceGroupName Name Location VmSize OsType ProvisioningState
----------------- ---- -------- ------ ------ -----------------
myResourceGroup myScaleSet_instance1 eastus Standard_DS1_v2 Windows Succeeded
myResourceGroup myScaleSet_instance2 eastus Standard_DS1_v2 Windows Succeeded
myResourceGroup myScaleSet_instance3 eastus Standard_DS1_v2 Windows Succeeded
Остановка и освобождение экземпляров виртуальных машин в масштабируемом наборе
Чтобы остановить отдельные экземпляры виртуальных машин, используйте Stop-AzVm и укажите имена экземпляров.
Stop-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"
По умолчанию остановленные виртуальные машины освобождены и не несут расходов на вычислительные ресурсы. Если требуется, чтобы остановленная виртуальная машина осталась в подготовленном состоянии, добавьте параметр -StayProvisioned
в предыдущую команду. За остановленные виртуальные машины, которые остаются в подготовленном состоянии, взимается плата за вычислительные операции по стандартной ставке.
Запуск экземпляров виртуальных машин в масштабируемом наборе
Чтобы запустить все экземпляры виртуальных машин в масштабируемом наборе, используйте Start-AzVmss.
Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Чтобы запустить отдельный экземпляр виртуальной машины в масштабируемом наборе, используйте Start-AzVM и укажите имя экземпляра.
Start-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"
Перезапуск экземпляров виртуальных машин в масштабируемом наборе
Чтобы перезапустить все виртуальные машины в масштабируемом наборе, используйте Restart-AzVmss.
Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
Чтобы перезапустить отдельный экземпляр, используйте [Restart-AzVM] и укажите имя экземпляра.
Restart-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"
Очистка ресурсов
При удалении группы ресурсов будут также удалены все содержащиеся в ней ресурсы: экземпляры виртуальной машины, виртуальная сеть и диски. Параметр -Force
подтверждает, что вы хотите удалить ресурсы без дополнительного запроса. При использовании параметра -AsJob
управление возвращается в командную строку без ожидания завершения операции.
Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob
Следующие шаги
Из этого руководства вы узнали, как создавать стандартный масштабируемый набор и выполнять задачи управления с помощью Azure PowerShell:
- Создание или изменение группы ресурсов
- Создание масштабируемого набора
- Просмотр и использование определенных размеров виртуальных машин
- Масштабирование масштабируемого набора вручную.
- Выполнение распространенных задач управления масштабируемыми наборами, таких как остановка, запуск и перезапуск масштабируемого набора
Перейдите к следующему руководству, чтобы узнать, как подключиться к экземплярам масштабируемого набора.