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

Примечание

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

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

Для выполнения этих задач управления требуется последняя версия Azure CLI. Сведения см. в статье Установка Azure CLI. Если вам нужно создать масштабируемый набор виртуальных машин, можно создать масштабируемый набор с помощью Azure CLI.

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

Чтобы просмотреть общие сведения о масштабируемом наборе, введите команду az vmss show. Следующий пример возвращает сведения о масштабируемом наборе myScaleSet в группе ресурсов myResourceGroup. Введите свои имена следующим образом.

az vmss show --resource-group myResourceGroup --name myScaleSet

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

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

az vmss list-instances \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --output table

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

az vmss get-instance-view \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --instance-id 0

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

az vmss list-instances \
    --expand instanceView \
    --select instanceView \
    --resource-group <resourceGroupName> \
    --subscription <subID> \
    --name <vmssName>
GET "https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSSName>/virtualMachines?api-version=2019-03-01&%24expand=instanceView"

Вывод сведений о подключении виртуальных машин

Чтобы подключиться к виртуальным машинам в масштабируемом наборе, необходимо установить подключение по протоколу SSH или RDP по назначенному общедоступному IP адресу и номеру порта. По умолчанию правила преобразования сетевых адресов (NAT) добавляются в подсистему балансировки нагрузки Azure для переадресации трафика удаленного подключения на каждую виртуальную машину. Чтобы получить список адресов и портов для подключения к экземплярам виртуальных машин в масштабируемом наборе, введите команду az vmss list-instance-connection-info. Следующий пример выводит сведения о подключении экземпляров виртуальных машин в масштабируемом наборе myScaleSet в группе ресурсов myResourceGroup. Введите собственные значения для имен.

az vmss list-instance-connection-info \
    --resource-group myResourceGroup \
    --name myScaleSet

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

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

Чтобы просмотреть количество экземпляров, присутствующих в масштабируемом наборе, используйте команду az vmss show и отправьте запрос для sku.capacity.

az vmss show \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --query [sku.capacity] \
    --output table

После этого можно вручную увеличить или уменьшить число виртуальных машин в масштабируемом наборе, выполнив команду az vmss scale. Приведенный ниже пример задает число виртуальных машин в масштабируемом наборе, равное 5.

az vmss scale \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --new-capacity 5

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

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

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

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

az vmss stop --resource-group myResourceGroup --name myScaleSet --instance-ids 0

Остановленные виртуальные машины остаются выделенными, и за них по-прежнему взимается плата за вычислительные операции. Если вместо этого требуется освободить виртуальные машины, чтобы плата взималась только за хранение данных, используйте команду az vmss deallocate. Чтобы освободить несколько виртуальных машин, разделите идентификаторы экземпляров пробелами. Следующий пример освобождает экземпляр 0 в масштабируемом наборе myScaleSet в группе ресурсов myResourceGroup. Укажите свои значения следующим образом.

az vmss deallocate --resource-group myResourceGroup --name myScaleSet --instance-ids 0

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

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

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

az vmss start --resource-group myResourceGroup --name myScaleSet --instance-ids 0

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

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

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

az vmss restart --resource-group myResourceGroup --name myScaleSet --instance-ids 0

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

Чтобы удалить одну или несколько виртуальных машин из масштабируемого набора, используйте команду az vmss delete-instances. С помощью параметра --instance-ids можно указать одну или несколько виртуальных машин, которые нужно удалить. Если указать * вместо идентификатора экземпляра, удаляются все виртуальные машины в масштабируемом наборе. Чтобы удалить несколько виртуальных машин, разделите идентификаторы экземпляров пробелами.

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

az vmss delete-instances --resource-group myResourceGroup --name myScaleSet --instance-ids 0

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

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