Partilhar via


Implantar Máquinas Virtuais do Azure Spot usando a CLI do Azure

Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível

A utilização das Máquinas Virtuais Spot do Azure permite-lhe tirar partido da nossa capacidade não utilizada com uma poupança de custos significativa. A qualquer momento em que o Azure precisa da capacidade de volta, a infraestrutura do Azure remove as Máquinas Virtuais do Azure Spot. Portanto, as Máquinas Virtuais Spot do Azure são ótimas para cargas de trabalho que podem lidar com interrupções, como trabalhos de processamento em lote, ambientes de desenvolvimento/teste, grandes cargas de trabalho de computação e muito mais.

O preço das Máquinas Virtuais Spot do Azure é variável, com base na região e na SKU. Para obter mais informações, consulte Preços de VM para Linux e Windows.

Você tem a opção de definir um preço máximo que está disposto a pagar, por hora, pela VM. O preço máximo de uma Máquina Virtual Spot do Azure pode ser definido em dólares americanos (USD), usando até 5 casas decimais. Por exemplo, o valor 0.98765 é um preço máximo de $0.98765 USD por hora. Se você definir o preço máximo como , -1a VM será removida com base no preço. O preço da VM é o preço atual da Máquina Virtual Spot do Azure ou o preço de uma VM padrão, que sempre é menor, desde que haja capacidade e cota disponíveis. Para obter mais informações sobre como definir o preço máximo, consulte Azure Spot Virtual Machines - Pricing.

O processo para criar uma Máquina Virtual Ponto do Azure usando a CLI do Azure é o mesmo detalhado no artigo de início rápido. Basta adicionar o parâmetro '--priority Spot', definir o --eviction-policy como Deallocate (o padrão) ou Delete, e fornecer um preço máximo ou -1.

Instalar a CLI do Azure

Para criar Máquinas Virtuais do Azure Spot, você precisa estar executando a CLI do Azure versão 2.0.74 ou posterior. Execute az --version para descobrir a versão. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.

Entre no Azure usando az login.

az login

Criar uma máquina virtual do Azure Spot

Este exemplo mostra como implantar uma Máquina Virtual Spot do Azure Linux que não é removida com base no preço. A política de remoção é definida para desalocar a VM, para que ela possa ser reiniciada posteriormente. Se você quiser excluir a VM e o disco subjacente quando a VM for removida, defina --eviction-policy como Delete.

az group create -n mySpotGroup -l eastus
az vm create \
    --resource-group mySpotGroup \
    --name myVM \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --priority Spot \
    --max-price -1 \
	--eviction-policy Deallocate

Depois que a VM for criada, você poderá consultar para ver o preço máximo de faturamento de todas as VMs no grupo de recursos.

az vm list \
   -g mySpotGroup \
   --query '[].{Name:name, MaxPrice:billingProfile.maxPrice}' \
   --output table

Simular uma expulsão

Você pode simular uma remoção de uma Máquina Virtual do Azure Spot usando REST, PowerShell ou CLI para testar como seu aplicativo responde a uma remoção repentina.

Na maioria dos casos, você deseja usar a API REST Virtual Machines - Simulate Eviction para ajudar com testes automatizados de aplicativos. Para o REST, o Response Code: 204 despejo simulado foi bem-sucedido. Você pode combinar remoções simuladas com o serviço de Evento Agendado para automatizar como seu aplicativo responde quando a VM é removida.

Para ver os eventos agendados em ação, assista Azure Friday - Usando os Eventos Agendados do Azure para se preparar para a manutenção da VM.

Teste rápido

Para um teste rápido para mostrar como funciona uma remoção simulada, vamos percorrer consultando o serviço de evento agendado para ver como ele se parece quando você simula uma remoção usando a CLI do Azure.

O serviço Evento Agendado é ativado para o seu serviço na primeira vez que você faz uma solicitação de eventos.

Remoto em sua VM e, em seguida, abra um prompt de comando.

No prompt de comando da VM, digite:

curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01

Esta primeira resposta pode demorar até 2 minutos. A partir de agora, eles devem exibir a saída quase imediatamente.

Em um computador que tenha a CLI do Azure instalada (como sua máquina local), simule uma remoção usando az vm simulate-eviction. Substitua o nome do grupo de recursos e o nome da VM pelo seu.

az vm simulate-eviction --resource-group mySpotRG --name mySpot

A saída de resposta tem Status: Succeeded se a solicitação foi feita com êxito.

Volte rapidamente à sua ligação remota à sua Máquina Virtual Spot e consulte novamente o ponto de extremidade de Eventos Agendados. Repita o seguinte comando até obter uma saída que contenha mais informações:

curl -H Metadata:true http://169.254.169.254/metadata/scheduledevents?api-version=2019-08-01

Quando o Serviço de Eventos Agendados recebe a notificação de remoção, você recebe uma resposta semelhante à seguinte saída:

{"DocumentIncarnation":1,"Events":[{"EventId":"A123BC45-1234-5678-AB90-ABCDEF123456","EventStatus":"Scheduled","EventType":"Preempt","ResourceType":"VirtualMachine","Resources":["myspotvm"],"NotBefore":"Tue, 16 Mar 2021 00:58:46 GMT","Description":"","EventSource":"Platform"}]}

Você pode ver que "EventType":"Preempt", e o recurso é o recurso "Resources":["myspotvm"]VM .

Você também pode ver a condição de remoção da VM verificando o "NotBefore" - a VM não será removida antes do tempo dado, de modo que essa é a sua janela para o seu aplicativo fechar graciosamente.

Próximos passos

Você também pode criar uma Máquina Virtual Ponto do Azure usando o Azure PowerShell, portal ou um modelo.

Consulte informações de preços atuais usando a API de preços de varejo do Azure para obter informações sobre a Máquina Virtual Ponto do Azure. O meterName e skuName ambos contêm Spot.

Se encontrar um erro, consulte Códigos de erro.