Partilhar via


Tutorial: Criar e gerenciar um conjunto de escala de máquina virtual com a CLI do Azure

Um Conjunto de Dimensionamento de Máquina Virtual permite implantar e gerenciar um conjunto de máquinas virtuais. Durante todo o ciclo de vida de um Conjunto de Dimensionamento de Máquina Virtual, talvez seja necessário executar uma ou mais tarefas de gerenciamento. Neste tutorial você aprenderá a:

  • Criar um grupo de recursos
  • Criar um Conjunto de Dimensionamento de Máquinas Virtuais
  • Expansão e entrada
  • Parar, iniciar e reiniciar instâncias de VM

Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Este artigo requer a versão 2.0.29 ou posterior da CLI do Azure. Se estiver 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 recursos do Azure são implantados e geridos. Um grupo de recursos deve ser criado antes de um Virtual Machine Scale Set. Crie um grupo de recursos com o comando az group create. Neste exemplo, um grupo de recursos chamado 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 escala ao longo deste tutorial.

Criar um conjunto de escalas

Importante

A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure assumirão como padrão 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 tomar, vá para Breaking Change for VMSS PowerShell/CLI Customers - Microsoft Community Hub

Você cria um conjunto de escala de máquina virtual com o comando az vmss create . O exemplo a seguir cria um conjunto de escala chamado myScaleSet e gera chaves SSH se elas não existirem:

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 do conjunto de escala e instâncias de VM. Para distribuir o tráfego para as instâncias individuais da VM, 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 escala, use az vm list da seguinte maneira:

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

A saída de exemplo a seguir mostra duas instâncias de VM no conjunto de escala:

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

Para ver 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 escala com um tamanho de instância de VM específico

Quando você criou um conjunto de escala no início do tutorial, uma SKU de VM padrão de Standard_D1_v2 foi fornecida 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 criaria um conjunto de escala com o --vm-sku parâmetro para especificar um tamanho de instância de VM de Standard_F1. Como leva alguns minutos para criar e configurar todos os recursos do conjunto de escala e instâncias de VM, não é necessário implantar o seguinte conjunto de escala:

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 escalas

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

Para aumentar ou diminuir manualmente o número de instâncias de VM no conjunto de escala, use az vmss scale. O exemplo a seguir define o número de instâncias de VM em sua escala definida como 3:

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

Leva alguns minutos para atualizar a capacidade do seu conjunto de escalas. Para ver o número de instâncias que tem agora no conjunto de dimensionamento, use az vm list e interrogue o 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 escalas

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

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

Para parar instâncias individuais de VM em um conjunto de escala, 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, em vez disso, desejar que as instâncias de VM sejam desalocadas e incorram apenas em encargos de armazenamento, use az vm deallocate e especifique os nomes de instância que deseja deslocalizar.

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

Iniciar instâncias de VM em um conjunto de escala

Para iniciar todas as instâncias de VM num conjunto de escala, use az vmss start.

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

Para iniciar instâncias de VM individuais em um conjunto de escala, 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 escala

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

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

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

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

Limpeza de recursos

Quando você exclui um grupo de recursos, todos os recursos contidos nele, como instâncias de VM, rede virtual e discos, também são excluídos. O parâmetro --no-wait devolve o controlo à linha de comandos, sem aguardar a conclusão da operação. O --yes parâmetro confirma que você deseja excluir os recursos sem um prompt extra para fazê-lo.

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

Próximos passos

Neste tutorial, você aprendeu como 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 escalas
  • Exibir e usar tamanhos específicos de VM
  • Dimensionar manualmente um conjunto de escalas
  • Executar tarefas de gerenciamento comuns dos conjuntos de escalas, como parar, iniciar e reiniciar os seus conjuntos de escalas

Avance para o próximo tutorial para saber como se conectar às instâncias do seu conjunto de escala.