Partilhar via


Início rápido: criar um conjunto de máquinas virtuais escaláveis Linux com um modelo ARM

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

Observação

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. Você pode dimensionar o número de VMs no conjunto de escala manualmente ou definir regras para dimensionamento automático com base no uso de recursos, como CPU, demanda de memória ou tráfego de rede. Em seguida, um balanceador de carga do Azure distribui o tráfego para as instâncias de VM no conjunto de escala. 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 usa 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 o uso de variáveis e parâmetros, esse modelo pode ser reutilizado para atualizar conjuntos de escala existentes ou criar conjuntos de escala 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.

Botão para implantar o modelo do Gerenciador de Recursos no 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 escalas

Para criar uma escala com um modelo, defina os recursos apropriados. As partes principais do tipo de recurso Conjunto de Escala de Máquina Virtual são:

Propriedade Descrição da propriedade Valor de modelo de exemplo
tipo Tipo de recurso do Azure para criar Microsoft.Compute/virtualMachineScaleSets
nome O nome do conjunto de escalas myScaleSet
localização O local para criar o conjunto de escala E.U.A. Leste
sku.name O tamanho da VM para cada instância do conjunto de escala Standard_A1
sku.capacidade O número de instâncias de VM a serem criadas inicialmente 2
upgradePolicy.mode Modo de atualização da instância da VM quando ocorrem alterações Automático
imageReference A plataforma ou imagem personalizada a ser usada 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.adminNome de utilizador O nome de usuário para cada instância de VM azureuser
osProfile.adminPassword A senha 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 um aplicativo de exemplo

Para testar seu conjunto de escalas, instale um aplicativo Web básico. Quando você implanta um conjunto de escala, as extensões de VM podem fornecer tarefas de configuração e automação pós-implantação, como a instalação de um aplicativo. Os scripts podem ser baixados do armazenamento do Azure ou do GitHub, ou fornecidos ao portal do Azure em tempo de execução de extensão. Para aplicar uma extensão ao seu conjunto de escalas, adicione a seção extensionProfile ao exemplo de recurso anterior. O perfil de extensão normalmente define as seguintes propriedades:

  • Tipo de extensão
  • Publicador de extensão
  • Versão da extensão
  • Localização dos scripts de configuração ou instalação
  • Comandos a serem executados nas instâncias da 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 . Esse botão abre o portal do Azure, carrega o modelo completo e solicita alguns parâmetros, como um nome de conjunto de escalas, contagem de instâncias e credenciais de administrador.

Botão para implantar o modelo do Gerenciador de Recursos no 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 prompts para fornecer um nome de conjunto de escala, contagem de instâncias e credenciais de administrador para as instâncias de VM. Leva alguns minutos para que o conjunto de escala e os recursos de suporte sejam criados.

Validar a implementação

Para ver sua escala definida em ação, acesse o aplicativo Web de exemplo em um navegador da Web. Obtenha o endereço IP público do balanceador de carga com az network public-ip list da seguinte maneira:

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

Digite o endereço IP público do balanceador de carga em um navegador da Web no formato http://publicIpAddress:9000/do_work. O balanceador de carga distribui o tráfego para uma de suas instâncias de VM, conforme mostrado no exemplo a seguir:

Página da Web padrão no NGINX

Limpeza de 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 --yes parâmetro confirma que você deseja excluir os recursos sem um prompt 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.