Поделиться через


Руководство. Создание масштабируемого набора виртуальных машин и управление ими с помощью 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. Кнопка запуска Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Снимок экрана: кнопка

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

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

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите Enter, чтобы запустить код или команду.

Создайте группу ресурсов

Группа ресурсов 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:

  • Создайте группу ресурсов
  • Создать набор для масштабирования
  • Просмотр и использование определенных размеров виртуальных машин
  • Масштабирование набора масштабирования вручную
  • Выполнение распространенных задач управления масштабируемыми наборами, таких как остановка, запуск и перезапуск масштабируемого набора

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