Tutorial: criar e gerenciar Conjunto de Dimensionamento de Máquinas Virtuais com a CLI do Azure

Um Conjunto de Dimensionamento de Máquinas Virtuais permite implantar e gerenciar um conjunto de máquinas virtuais. Durante todo o ciclo de vida de um Conjunto de Dimensionamento de Máquinas Virtuais, você poderá precisar executar uma ou mais tarefas de gerenciamento. Neste tutorial, você aprenderá a:

  • Criar um grupo de recursos
  • Crie um conjunto de dimensionamento de máquinas virtuais
  • Escalar horizontalmente
  • Parar, iniciar e reiniciar instâncias de VM

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

Este artigo exige a versão 2.0.29 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.

Criar um grupo de recursos

Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. Você deve criar um grupo de recursos antes de criar um Conjunto de Dimensionamento de Máquinas Virtuais. Crie um grupo de recursos com o comando az group create. Neste exemplo, um grupo de recursos denominado myResourceGroup é criado na região eastus.

az group create --name myResourceGroup --location eastus

O nome do grupo de recursos é especificado quando você cria ou modifica um conjunto de dimensionamento ao longo deste tutorial.

Criar um conjunto de escala

Importante

A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure serão padrão para o Modo de Orquestração Flexível se nenhum modo de orquestração for especificado. Para obter mais informações sobre essa alteração e quais ações você deve executar, acesse Alteração Interruptiva para Clientes PowerShell/CLI de VMSS – Hub de Comunidade da Microsoft

Crie um Conjunto de Dimensionamento de Máquinas Virtuais com o comando az vmss create. O exemplo a seguir cria um conjunto de dimensionamento chamado myScaleSet e gera chaves SSH caso não existam:

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

Leva alguns minutos para criar e configurar todos os recursos e as instâncias de VM do conjunto de dimensionamento. Para distribuir o tráfego para as instâncias de VM individuais, um balanceador de carga também é criado.

Exibir informações sobre as instâncias de VM em seu conjunto de dimensionamento

Para exibir uma lista de instâncias de VM em um conjunto de dimensionamento, use az vm list da seguinte forma:

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

A saída de exemplo abaixo mostra duas instâncias de VM no conjunto de dimensionamento:

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

Para exibir informações adicionais sobre uma instância de VM específica, use az vm show e especifique o nome da VM.

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"
  },
}

Criar um conjunto de dimensionamento com um tamanho de instância de VM específico

Quando você criou um conjunto de dimensionamento no início do tutorial, um SKU de VM padrão Standard_D1_v2 foi fornecido para as instâncias de VM. Você pode especificar um tamanho de instância de VM diferente com base na saída de az vm list-sizes. O exemplo a seguir cria um conjunto de dimensionamento com o parâmetro --vm-sku para especificar um tamanho de instância de VM Standard_F1. Como demora alguns minutos para criar e configurar todos os recursos do conjunto de dimensionamento e as instâncias de VM, você não precisa implantar o seguinte conjunto de dimensionamento:

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

Alterar a capacidade de um conjunto de dimensionamento

Quando você criou um conjunto de dimensionamento definido no início do tutorial, duas instâncias de VM foram implantadas por padrão. Você pode especificar o parâmetro --instance-count com az vmss create para alterar o número de instâncias criadas com um conjunto de dimensionamento. Para aumentar ou diminuir o número de instâncias de VM no conjunto de dimensionamento existente, você pode alterar a capacidade manualmente. O conjunto de dimensionamento cria ou remove o número necessário de instâncias de VM e configura o balanceador de carga para distribuir o tráfego.

Para aumentar ou diminuir o número de instâncias de VM no conjunto de dimensionamento manualmente, use az vmss scale. O seguinte exemplo aumenta o número de instâncias de VM no conjunto de dimensionamento para 3:

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

São necessários alguns minutos para atualizar a capacidade de seu conjunto de dimensionamento. Para exibir o número de instâncias presentes atualmente no conjunto de dimensionamento, use az vm list e consulte no grupo de recursos associado.

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

Parar e desalocar instâncias de VM em um conjunto de dimensionamento

Para parar todas as instâncias de VM em um conjunto de dimensionamento, use az vmss stop.

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

Para interromper instâncias de VM individuais em um conjunto de dimensionamento, use az vm stop e especifique o nome da instância.

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

As instâncias de VM paradas permanecem alocadas e continuam a incorrer em encargos de computação. Se desejar que as instâncias de VM sejam desalocadas e gerem apenas encargos de armazenamento, use az vm deallocate e especifique os nomes das instância que você deseja desalocar.

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

Iniciar instâncias de VM em um conjunto de dimensionamento

Para iniciar todas as instâncias de VM em um conjunto de dimensionamento, use az vmss start.

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

Para iniciar instâncias de VM individuais em um conjunto de dimensionamento, use az vm start e especifique o nome da instância.

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

Reiniciar instâncias de VM em um conjunto de dimensionamento

Para reiniciar todas as instâncias de VM em um conjunto de dimensionamento, use az vmss restart.

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

Para reiniciar instâncias de VM individuais em um conjunto de dimensionamento, use az vm restart e especifique o nome da instância.

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

Limpar os recursos

Quando você excluir um grupo de recursos, todos os recursos contidos, como as instâncias de VM, as rede virtuais e os discos, também serão excluídos. O parâmetro --no-wait retorna o controle ao prompt sem aguardar a conclusão da operação. O parâmetro --yes confirma que você deseja excluir os recursos sem um prompt extra para fazer isso.

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

Próximas etapas

Neste tutorial, você aprendeu a executar algumas tarefas básicas de criação e gerenciamento de conjuntos de escala com a CLI do Azure:

  • Criar um grupo de recursos
  • Criar um conjunto de escala
  • Exibir e usar tamanhos específicos de VM
  • Dimensionar manualmente um conjunto de dimensionamento
  • Executar tarefas comuns de gerenciamento de conjunto de dimensionamento, como parar, iniciar e reiniciar seu conjunto de dimensionamento

Acesse o próximo tutorial para saber como se conectar a suas instâncias de conjunto de dimensionamento.