Guia de início rápido: criar um conjunto de escala de máquina virtual Linux com um modelo ARM

Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala uniforme

Nota

O artigo a seguir é para conjuntos de escala de máquina virtual uniforme. Recomendamos o uso de Conjuntos de Dimensionamento de Máquina Virtual Flexível para novas cargas de trabalho. Saiba mais sobre esse novo modo de orquestração em nossa visão geral dos Conjuntos de Escala de Máquina Virtual Flexível.

Um Conjunto de Dimensionamento de Máquina Virtual permite implantar e gerenciar um conjunto de máquinas virtuais de dimensionamento automático. Pode dimensionar o número de VMs no conjunto de dimensionamento manualmente ou definir regras para dimensionar automaticamente com base na utilização de recursos como CPU, exigência de memória ou tráfego de rede. Em seguida, um balanceador de carga do Azure distribui o tráfego pelas instâncias de VM no conjunto de dimensionamento. Neste início rápido, você cria um Conjunto de Dimensionamento de Máquina Virtual e implanta um aplicativo de exemplo com um modelo do Azure Resource Manager (modelo ARM).

Um modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo utiliza sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Os modelos ARM permitem implantar grupos de recursos relacionados. Em um único modelo, você pode criar o Conjunto de Dimensionamento de Máquina Virtual, instalar aplicativos e configurar regras de dimensionamento automático. Com a utilização de parâmetros e variáveis, este modelo pode ser reutilizado para atualizar conjuntos de dimensionamento existentes ou criar conjuntos de dimensionamento adicionais. Pode implementar modelos através do portal do Azure, da CLI do Azure ou do Azure PowerShell ou a partir de pipelines de integração contínua/entrega contínua (CI/CD).

Se o seu ambiente cumpre os pré-requisitos e se está familiarizado com a utilização de modelos ARM, selecione o botão Implementar no Azure. O modelo será aberto no portal do Azure.

Button to deploy the Resource Manager template to Azure.

Pré-requisitos

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

Rever o modelo

O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure.

Esses recursos são definidos no modelo:

Definir um conjunto de dimensionamento

Para criar um dimensionamento com um modelo, tem de definir os recursos adequados. As partes principais do tipo de recurso Conjunto de Escala de Máquina Virtual são:

Property Descrição da propriedade Valor de modelo de exemplo
tipo Tipo de recurso do Azure a criar Microsoft.Compute/virtualMachineScaleSets
nome O nome do conjunto de dimensionamento myScaleSet
localização A localização para criar o conjunto de dimensionamento E.U.A. Leste
sku.name O tamanho da VM para cada instância do conjunto de dimensionamento Standard_A1
sku.capacity O número de instâncias de VM a criar inicialmente 2
upgradePolicy.mode Modo de atualização de instâncias de VM quando ocorrem alterações Automático
imageReference A plataforma ou imagem personalizada a utilizar para as instâncias de VM Canonical Ubuntu Server 16.04-LTS
osProfile.computerNamePrefix O prefixo de nome para cada instância de VM myvmss
osProfile.adminUsername O nome de utilizador para cada instância de VM azureuser
osProfile.adminPassword A palavra-passe para cada instância de VM P@ssw0rd!

Para personalizar um modelo de conjunto de escalas, você pode alterar o tamanho da VM ou a capacidade inicial. Outra opção é usar uma plataforma diferente ou uma imagem personalizada.

Adicionar uma aplicação de exemplo

Para testar o conjunto de dimensionamento, instale uma aplicação Web básica. Quando implementa um conjunto de dimensionamento, as extensões de VM podem fornecer tarefas de automatização e configuração pós-implementação, tais como a instalação de uma aplicação. Os scripts podem ser transferidos a partir do armazenamento do Azure ou do GitHub, ou fornecidos para o portal do Azure no runtime da extensão. Para aplicar uma extensão ao conjunto de dimensionamento, adicione a secção extensionProfile ao exemplo de recurso anterior. Normalmente, o perfil de extensão define as seguintes propriedades:

  • Tipo de extensão
  • Publicador da extensão
  • Versão da extensão
  • Localização dos scripts de configuração ou instalação
  • Comandos para executar nas instâncias de VM

O modelo usa a extensão de script personalizado para instalar o Bottle, uma estrutura da Web Python e um servidor HTTP simples.

Dois scripts são definidos em fileUris - installserver.sh e workserver.py. Esses arquivos são baixados do GitHub, em seguida , commandToExecute é executado bash installserver.sh para instalar e configurar o aplicativo.

Implementar o modelo

Você pode implantar o modelo selecionando o seguinte botão Implantar no Azure . Este botão abre o portal do Azure, carrega o modelo completo e pede-lhe alguns parâmetros, tais como um nome de conjunto de dimensionamento, uma contagem de instâncias e as credenciais de administrador.

Button to deploy the Resource Manager template to Azure.

Você também pode implantar um modelo do Gerenciador de Recursos usando a CLI do Azure:

# Create a resource group
az group create --name myResourceGroup --location EastUS

# Deploy template into resource group
az deployment group create \
    --resource-group myResourceGroup \
    --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/application-workloads/python/vmss-bottle-autoscale/azuredeploy.json

Responda aos pedidos para fornecer um nome do conjunto de dimensionamento, uma contagem de instâncias e as credenciais de administrador para as instâncias de VM. A criação do conjunto de dimensionamento e dos recursos de apoio demora algum tempo.

Validar a implementação

Para ver o conjunto de dimensionamento em ação, aceda à aplicação Web de exemplo num browser. Obtenha o endereço IP público do balanceador de carga com az network public-ip list da seguinte forma:

az network public-ip list \
    --resource-group myResourceGroup \
    --query [*].ipAddress -o tsv

Introduza o endereço IP público do balanceador de carga num browser no formato http://publicIpAddress:9000/do_work. O balanceador de carga distribui o tráfego para uma das suas instâncias de VM, conforme mostra o exemplo seguinte:

Default web page in NGINX

Clean up resources (Limpar recursos)

Quando já não for necessário, pode utilizar az group delete para remover o grupo de recursos, o conjunto de dimensionamento e todos os recursos relacionados da seguinte forma. O parâmetro --no-wait devolve o controlo à linha de comandos, sem aguardar a conclusão da operação. O parâmetro --yes confirma que pretende eliminar os recursos sem uma linha de comandos adicional para fazê-lo.

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

Próximos passos

Neste início rápido, você criou um conjunto de escalas do Linux com um modelo ARM e usou a Extensão de Script Personalizada para instalar um servidor Web Python básico nas instâncias da VM. Para saber mais, continue no tutorial sobre como criar e gerenciar Conjuntos de Escala de Máquina Virtual do Azure.