Управление масштабируемым набором виртуальных машин с помощью Azure PowerShell

Примечание

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

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

Если вам нужно создать масштабируемый набор виртуальных машин, можно создать масштабируемый набор с Azure PowerShell.

Примечание

Для взаимодействия с Azure рекомендуется использовать модуль Azure Az PowerShell. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Просмотр информации о масштабируемом наборе

С помощью командлета Get-AzVmss просмотрите общие сведения о масштабируемом наборе. Следующий пример возвращает сведения о масштабируемом наборе myScaleSet в группе ресурсов myResourceGroup. Введите свои имена следующим образом.

Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Просмотр виртуальных машин в масштабируемом наборе

С помощью командлета Get-AzVmssVM просмотрите список экземпляров виртуальных машин в масштабируемом наборе. Следующий пример выводит списки всех экземпляров виртуальных машин в масштабируемом наборе myScaleSet в группе ресурсов myResourceGroup. Введите собственные значения для имен.

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Чтобы просмотреть дополнительные сведения о конкретном экземпляре виртуальной машины, добавьте параметр -InstanceId в командлет Get-AzVmssVM и укажите экземпляр для просмотра. Следующий пример возвращает сведения об экземпляре виртуальной машины 0 в масштабируемом наборе myScaleSet в группе ресурсов myResourceGroup. Введите свои имена следующим образом.

Get-AzVmssVM -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Вы также можете получить подробную информацию instanceView для всех экземпляров за один вызов API, что может помочь избежать дросселирования API для больших установок.

Get-AzVmssVM -InstanceView -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"
GET "https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSSName>/virtualMachines?api-version=2019-03-01&%24expand=instanceView"

Изменение емкости масштабируемого набора

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

Сначала создайте объект масштабируемого набора с помощью командлета Get-AzVmss, затем укажите новое значение для sku.capacity. С помощью командлета Update-AzVmss примените изменение емкости. В следующем примере емкость масштабируемого набора myScaleSet в группе ресурсов myResourceGroup изменяется до 5 экземпляров. Укажите свои значения следующим образом.

# Get current scale set
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

# Set and update the capacity of your scale set
$vmss.sku.capacity = 5
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss

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

Остановка и запуск виртуальных машин в масштабируемом наборе

С помощью командлета Stop-AzVmss остановите одну или несколько виртуальных машин в масштабируемом наборе. С помощью параметра -InstanceId можно указать одну или несколько виртуальных машин, которые нужно остановить. Если не указать идентификатор экземпляра, останавливаются все виртуальные машины в масштабируемом наборе. Чтобы остановить несколько виртуальных машин, разделите идентификаторы экземпляров запятыми.

Следующий пример останавливает экземпляр 0 в масштабируемом наборе myScaleSet в группе ресурсов myResourceGroup. Укажите свои значения следующим образом.

Stop-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

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

Запуск виртуальных машин в масштабируемом наборе

С помощью командлета Start-AzVmss запустите одну или несколько виртуальных машин в масштабируемом наборе. С помощью параметра -InstanceId можно указать одну или несколько виртуальных машин, которые нужно запустить. Если не указать идентификатор экземпляра, запускаются все виртуальные машины в масштабируемом наборе. Чтобы запустить несколько виртуальных машин, разделите идентификаторы экземпляров запятыми.

Следующий пример запускает экземпляр 0 в масштабируемом наборе myScaleSet в группе ресурсов myResourceGroup. Укажите свои значения следующим образом.

Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

Перезапуск виртуальных машин в масштабируемом наборе

Чтобы перезапустить одну или несколько виртуальных машин в масштабируемом наборе, используйте командлет Restart-AzVmss. С помощью параметра -InstanceId можно указать одну или несколько виртуальных машин, которые нужно перезапустить. Если не указать идентификатор экземпляра, перезапускаются все виртуальные машины в масштабируемом наборе. Чтобы перезапустить несколько виртуальных машин, разделите идентификаторы экземпляров запятыми.

Следующий пример перезапускает экземпляр 0 в масштабируемом наборе myScaleSet в группе ресурсов myResourceGroup. Укажите свои значения следующим образом.

Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

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

Чтобы удалить одну или несколько виртуальных машин из масштабируемого набора, используйте командлет Remove-AzVmss. С помощью параметра -InstanceId можно указать одну или несколько виртуальных машин, которые нужно удалить. Если не указать идентификатор экземпляра, удаляются все виртуальные машины в масштабируемом наборе. Чтобы удалить несколько виртуальных машин, разделите идентификаторы экземпляров запятыми.

Следующий пример удаляет экземпляр 0 в масштабируемом наборе myScaleSet в группе ресурсов myResourceGroup. Укажите свои значения следующим образом.

Remove-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" -InstanceId "0"

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

К другим типичным задачам управления масштабируемым набором относятся развертывание приложения и обновление экземпляров виртуальных машин. Можно также использовать Azure PowerShell для настройки правил автомасштабирования.