Управление масштабируемым набором виртуальных машин с помощью Azure PowerShell
Примечание.
Многие шаги, перечисленные в этом документе, применяются к Масштабируемые наборы виртуальных машин с помощью режима единой оркестрации. Мы рекомендуем использовать гибкую оркестрацию для новых рабочих нагрузок. Дополнительные сведения см. в режимах Orchesration для Масштабируемые наборы виртуальных машин в Azure.
На протяжении всего жизненного цикла масштабируемого набора виртуальных машин может потребоваться выполнить одну или несколько задач управления. Кроме того, можно создавать сценарии для автоматизации различных задач жизненного цикла. В этой статье подробно рассматриваются некоторые стандартные командлеты Azure PowerShell, которые позволяют выполнять эти задачи.
Если вам нужно создать масштабируемый набор виртуальных машин, можно создать масштабируемый набор с помощью Azure PowerShell.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка 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 для настройки правил автомасштабирования.