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


Руководство. Создание масштабируемого набора виртуальных машин и управление ими с помощью Azure CLI

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

  • Создайте группу ресурсов
  • Создать набор виртуальных машин
  • Горизонтальное масштабирование и снижение масштабирования
  • Остановка, запуск и перезапуск экземпляров виртуальных машин

Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.

Предпосылки

Для этой статьи требуется версия 2.0.29 или более поздняя версия Azure CLI. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

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

Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими. Перед масштабируемым набором виртуальных машин необходимо создать группу ресурсов. Создайте группу ресурсов с помощью команды az group create. В этом примере группа ресурсов с именем myResourceGroup создается в регионе eastus .

az group create --name myResourceGroup --location eastus

Имя группы ресурсов указывается при создании или изменении масштабируемого набора в рамках этого руководства.

Создать набор для масштабирования

Это важно

Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub

Вы создаете масштабируемый набор виртуальных машин с помощью команды az vmss create . В следующем примере создается масштабируемый набор с именем myScaleSet, а также генерируются ключи SSH, если они не существуют.

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --orchestration-mode flexible \
  --image <SKU image> \
  --admin-username azureuser \
  --generate-ssh-keys

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

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

Чтобы просмотреть список экземпляров виртуальных машин в масштабируемом наборе, используйте az vm list следующим образом:

az vm list --resource-group myResourceGroup --output table

В следующем примере выходных данных показаны два экземпляра виртуальной машины в масштабируемом наборе:

Name                 ResourceGroup    Location    Zones
-------------------  ---------------  ----------  -------
myScaleSet_instance1  myResourceGroup  eastus
myScaleSet_instance2  myResourceGroup  eastus

Чтобы просмотреть дополнительные сведения о конкретном экземпляре виртуальной машины, используйте az vm show и укажите имя виртуальной машины.

az vm show --resource-group myResourceGroup --name myScaleSet_instance1
{
  "hardwareProfile": {
    "vmSize": "Standard_DS1_v2",
  },
  "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_instance1",
  "location": "eastus",
  "name": "myScaleSet_instance1",
  "networkProfile": {
    "networkInterfaces": [
      {
        "deleteOption": "Delete",
        "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-0396c71c",
        "primary": true,
        "resourceGroup": "myResourceGroup"
      }
    ]
  },
  "osProfile": {
    "adminUsername": "azureuser",
    "allowExtensionOperations": true,
    "computerName": "myScaleSN30BP1",
    "linuxConfiguration": {
      "disablePasswordAuthentication": true,
      "enableVmAgentPlatformUpdates": false,
      "patchSettings": {
        "assessmentMode": "ImageDefault",
        "patchMode": "ImageDefault"
      },
      "provisionVmAgent": true,
      "ssh": {
        "publicKeys": [
          {
            "keyData": "ssh-rsa",
            "path": "/home/azureuser/.ssh/authorized_keys"
          }
        ]
      }
    },
    "requireGuestProvisionSignal": true,
    "secrets": [],
  },
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "storageProfile": {
    "dataDisks": [],
    "imageReference": {
      "exactVersion": "XXXXX",
      "offer": "myOffer",
      "publisher": "myPublisher",
      "sku": "mySKU",
      "version": "latest"
    },
    "osDisk": {
      "caching": "ReadWrite",
      "createOption": "FromImage",
      "deleteOption": "Delete",
      "diskSizeGb": 30,
      "managedDisk": {
        "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/myScaleSet_instance1_disk1",
        "resourceGroup": "myResourceGroup",
        "storageAccountType": "Premium_LRS"
      },
      "name": "myScaleSet_instance1_disk1",
      "osType": "Linux",
    }
  },
  "tags": {},
  "timeCreated": "2022-11-16T20:32:15.024581+00:00",
  "type": "Microsoft.Compute/virtualMachines",
  "virtualMachineScaleSet": {
    "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet",
    "resourceGroup": "myResourceGroup"
  },
}

Создание масштабируемого набора с определенным размером экземпляра виртуальной машины

При создании масштабируемого набора в начале руководства номер SKU виртуальной машины по умолчанию Standard_D1_v2 использовался для виртуальных машин. Можно указать другой размер экземпляра виртуальной машины на основе выходных данных az vm list-sizes. В следующем примере будет создан масштабируемый набор с --vm-sku параметром, чтобы указать размер экземпляра виртуальной машины Standard_F1. Так как создание и настройка всех ресурсов масштабируемого набора и экземпляров виртуальных машин занимает несколько минут, вам не нужно развертывать следующий масштабируемый набор:

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --orchestration-mode flexible \
  --image <SKU image> \
  --vm-sku Standard_F1 \
  --admin-user azureuser \
  --generate-ssh-keys

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

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

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

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

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

az vm list --resource-group myResourceGroup --output table
Name                 ResourceGroup    Location    Zones
-------------------  ---------------  ----------  -------
myScaleSet_instance1  myResourceGroup  eastus
myScaleSet_instance2  myResourceGroup  eastus
myScaleSet_instance3  myResourceGroup  eastus

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

Чтобы остановить все экземпляры виртуальных машин в масштабируемом наборе, используйте az vmss stop.

az vmss stop \
  --resource-group myResourceGroup \
  --name myScaleSet

Чтобы остановить отдельные экземпляры виртуальных машин в масштабируемом наборе, используйте az vm stop и укажите имя экземпляра.

az vm stop \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

Остановленные экземпляры виртуальных машин остаются выделенными и продолжают нести расходы на вычислительные ресурсы. Если вы хотите, чтобы виртуальные машины были деактивированы и взималась плата только за хранение, используйте az vm deallocate и укажите имена экземпляров, которые требуется деактивировать.

az vm deallocate \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

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

Чтобы запустить все экземпляры виртуальных машин в масштабируемом наборе, используйте az vmss start.

az vmss start \
  --resource-group myResourceGroup \
  --name myScaleSet

Чтобы запустить отдельные экземпляры виртуальных машин в масштабируемом наборе, используйте az vm start и укажите имя экземпляра.

az vm start \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

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

Чтобы перезапустить все экземпляры виртуальных машин в масштабируемом наборе, используйте az vmss restart.

az vmss restart \
  --resource-group myResourceGroup \
  --name myScaleSet

Чтобы перезапустить отдельные экземпляры виртуальных машин в масштабируемом наборе, используйте az vm restart и укажите имя экземпляра.

az vm restart \
  --resource-group myResourceGroup \
  --name myScaleSet_instance1

Очистите ресурсы

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

az group delete --name myResourceGroup --no-wait --yes

Дальнейшие шаги

В этом руководстве вы узнали, как выполнять некоторые основные задачи по созданию и управлению масштабируемым набором с помощью Azure CLI:

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

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