Azure Spot Virtual Machines implementeren met behulp van de Azure CLI

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

Met Behulp van Azure Spot Virtual Machines kunt u profiteren van onze ongebruikte capaciteit tegen aanzienlijke kostenbesparingen. Op elk moment dat Azure de capaciteit terug nodig heeft, verwijdert de Azure-infrastructuur Azure Spot Virtual Machines. Daarom zijn Azure Spot Virtual Machines ideaal voor workloads die onderbrekingen kunnen verwerken, zoals batchverwerkingstaken, ontwikkel-/testomgevingen, grote rekenworkloads en meer.

Prijzen voor Azure Spot Virtual Machines zijn variabel op basis van regio en SKU. Zie VM-prijzen voor Linux en Windows voor meer informatie.

U hebt de optie om een maximumprijs in te stellen die u per uur voor de VIRTUELE machine wilt betalen. De maximumprijs voor een Azure Spot Virtual Machine kan worden ingesteld in Amerikaanse dollars (USD), met maximaal 5 decimalen. De waarde 0.98765 is bijvoorbeeld een maximumprijs van USD 0,98765 per uur. Als u de maximumprijs instelt op , wordt -1de VM verwijderd op basis van de prijs. De prijs voor de VM is de huidige prijs voor Azure Spot Virtual Machine of de prijs voor een standaard-VM, die altijd lager is, zolang er capaciteit en quotum beschikbaar is. Zie Azure Spot Virtual Machines - Prijzen voor meer informatie over het instellen van de maximale prijs.

Het proces voor het maken van een Azure Spot Virtual Machine met behulp van de Azure CLI is hetzelfde als beschreven in het quickstart-artikel. Voeg de parameter '--priority Spot' toe, stel de --eviction-policy in Deallocate op (de standaardinstelling) of Delete, en geef een maximale prijs of -1op.

Azure CLI installeren

Als u Azure Spot Virtual Machines wilt maken, moet u Azure CLI versie 2.0.74 of hoger uitvoeren. Voer az --version uit om de versie te vinden. Als u uw CLI wilt installeren of upgraden, raadpleegt u De Azure CLI installeren.

Meld u aan bij Azure met az login.

az login

Een virtuele Azure Spot-machine maken

In dit voorbeeld ziet u hoe u een Linux Azure Spot Virtual Machine implementeert die niet wordt verwijderd op basis van de prijs. Het verwijderingsbeleid is ingesteld om de toewijzing van de VM ongedaan te maken, zodat deze op een later tijdstip opnieuw kan worden opgestart. Als u de VM en de onderliggende schijf wilt verwijderen wanneer de VM wordt verwijderd, stelt u in --eviction-policy op 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

Nadat de VM is gemaakt, kunt u een query uitvoeren om de maximale factureringsprijs voor alle VM's in de resourcegroep te bekijken.

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

Een verwijdering simuleren

U kunt een verwijdering van een Azure Spot Virtual Machine simuleren met behulp van REST, PowerShell of de CLI om te testen hoe goed uw toepassing reageert op een plotselinge verwijdering.

In de meeste gevallen wilt u de REST API Virtual Machines - Verwijdering simuleren gebruiken om te helpen bij het geautomatiseerd testen van toepassingen. Voor REST betekent een Response Code: 204 dat de gesimuleerde verwijdering is geslaagd. U kunt gesimuleerde verwijderingen combineren met de Scheduled Event-service om te automatiseren hoe uw app reageert wanneer de virtuele machine wordt verwijderd.

Als u geplande gebeurtenissen in actie wilt zien, watch Azure Friday - Azure Scheduled Events gebruiken om het vm-onderhoud voor te bereiden.

Snelle test

Voor een snelle test om te laten zien hoe een gesimuleerde verwijdering werkt, gaan we een query uitvoeren op de geplande gebeurtenisservice om te zien hoe deze eruitziet wanneer u een verwijdering simuleert met behulp van de Azure CLI.

De service Geplande gebeurtenis is ingeschakeld voor uw service wanneer u voor het eerst een aanvraag voor gebeurtenissen indient.

Ga op afstand naar uw VM en open vervolgens een opdrachtprompt.

Typ in de opdrachtprompt op uw VM:

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

Dit eerste antwoord kan maximaal 2 minuten duren. Vanaf nu moeten ze bijna onmiddellijk uitvoer weergeven.

Vanaf een computer waarop de Azure CLI is geïnstalleerd (zoals uw lokale computer), simuleert u een verwijdering met behulp van az vm simulate-eviction. Vervang de naam van de resourcegroep en de NAAM van de VM door uw eigen naam.

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

De antwoorduitvoer heeft Status: Succeeded of de aanvraag is gedaan.

Ga snel terug naar uw externe verbinding met uw virtuele spot-machine en voer opnieuw een query uit op het eindpunt Geplande gebeurtenissen. Herhaal de volgende opdracht totdat u een uitvoer krijgt die meer informatie bevat:

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

Wanneer de geplande gebeurtenisservice de verwijderingsmelding ontvangt, krijgt u een antwoord dat lijkt op de volgende uitvoer:

{"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"}]}

U kunt zien dat "EventType":"Preempt"en de resource de VM-resource "Resources":["myspotvm"]is.

U kunt ook de verwijderingsvoorwaarde van de VM zien door te "NotBefore" controleren op - de VM wordt niet verwijderd vóór de opgegeven tijd, zodat uw toepassing het venster is om probleemloos af te sluiten.

Volgende stappen

U kunt ook een Azure Spot Virtual Machine maken met behulp van Azure PowerShell, portal of een sjabloon.

Query's uitvoeren op huidige prijsinformatie met behulp van de Api voor prijzen van Azure voor detailhandel voor informatie over Azure Spot Virtual Machine. De meterName en skuName bevatten Spotbeide .

Zie Foutcodes als er een fout optreedt.