Günstige unterbrechbare VM benötigt? Erstelle eine Spot-VM
CloudTrips benötigt günstige Compute-Kapazität für eine entbehrliche Batch- oder Testworkload. Eine Azure-Spot-VM verwendet ungenutzte Azure-Kapazität mit Rabatt. Azure kann sie jedoch mit ungefähr 30 Sekunden Vorwarnung entfernen, wenn die Kapazität anderweitig benötigt wird.
Spot-VMs besitzen keine Verfügbarkeits-SLA. Verwende sie nur für unterbrechbare Workloads, die einen Vorgang wiederholen, neu starten oder ab einem Prüfpunkt fortsetzen können. Verwende keine einzelne Spot-VM für eine produktive Anwendung, Datenbank oder einen anderen kritischen Dienst.
Verstehe Preis und Entfernung
| Einstellung | Bedeutung |
|---|---|
| Höchstpreis | Höchster akzeptierter Stundenpreis |
Höchstpreis -1 |
Aktueller Spot-Preis bis zum regulären VM-Preis; keine preisbasierte Entfernung |
| Kapazitätsentfernung | Azure fordert die VM-Kapazität zurück |
| Deallokierungsrichtlinie | Stoppt und deallokiert die VM, behält aber Ressource und Datenträger |
| Löschrichtlinie | Löscht die VM und entsprechend den Löscheinstellungen zugehörige Datenträger |
Dieser Trip verwendet -1 und Deallocate. Die VM kann weiterhin aus
Kapazitätsgründen entfernt werden. Ein erneuter Start ist nicht garantiert,
weil Spot-Kapazität fehlen kann.
Erstelle die Ressourcengruppe
Erstelle:
Subscription: CloudTrips TEST
Resource group: rg-cloudtrips-spot-test-weu
Region: West Europe
Konfiguriere die Spot-VM
Öffne Virtual machines > Create > Azure virtual machine. Konfiguriere unter Basics:
Resource group: rg-cloudtrips-spot-test-weu
Virtual machine name: vm-cloudtrips-spot01-test-weu
Region: West Europe
Availability options: No infrastructure redundancy required
Security type: Trusted launch virtual machines
Image: Ubuntu Server 24.04 LTS - x64 Gen2
Size: Standard_D2s_v3
Run with Azure Spot discount: Enabled
Eviction type: Capacity only
Eviction policy: Stop / Deallocate
Authentication type: SSH public key
Username: azureuser
SSH public key source: Generate new key pair
Key pair name: sshkey-cloudtrips-spot-test-weu-01
Public inbound ports: None
Bei Eviction type: Capacity only zeigt das Portal kein Feld Maximum
price an. Azure verwendet den entsprechenden Höchstpreis -1. Die VM kann
weiterhin entfernt werden, wenn Azure die Kapazität benötigt, aber nicht wegen
eines steigenden Spot-Preises.
Wähle View pricing history and compare prices in nearby regions. Prüfe den aktuellen Spot-Preis und die historische Entfernungsrate für Größe und Region. Eine niedrige historische Rate garantiert keine zukünftige Kapazität.

Konfiguriere Datenträger und Netzwerk
Verwende unter Disks:
OS disk type: Standard SSD LRS
Delete with VM: Enabled
Erstelle unter Networking:
Virtual network: vnet-cloudtrips-spot-test-weu
Address range: 10.85.0.0/16
Subnet: snet-workers
Subnet range: 10.85.1.0/24
Public IP: None
NIC network security group: None
Die VM besitzt keinen öffentlichen Verwaltungsendpunkt. Verwende für dieses Lab Azure Run Command. Füge die üblichen CloudTrips-TEST-Tags hinzu, wähle **Review
- create**, prüfe Spot-Bedingungen und geschätzten Preis und wähle Create.
Die Spot-Zuweisung kann sofort fehlschlagen, wenn für Region und Größe keine Spot-Kapazität verfügbar ist. Wähle eine andere angebotene Größe oder Region, statt davon auszugehen, dass die Kapazität verfügbar wird.
Überprüfe die Spot-Eigenschaften
Öffne nach der Bereitstellung die VM > Overview und bestätige, dass sie ausgeführt wird. Öffne Properties oder Configuration und überprüfe die vom Portal angezeigten Werte:
Azure Spot eviction policy: Stop / Deallocate
Azure Spot eviction type: -
Der Bindestrich bedeutet nicht, dass Spot deaktiviert ist. Das Portal kann auch
Maximum price auslassen. Verwende die folgende CLI-Abfrage, um die
zugrunde liegenden Spot-Eigenschaften einschließlich Priority und MaxPrice
zu prüfen.

Du kannst auch das Abrechnungsprofil abfragen:
az vm show \
--resource-group rg-cloudtrips-spot-test-weu \
--name vm-cloudtrips-spot01-test-weu \
--query "{Priority:priority,EvictionPolicy:evictionPolicy,MaxPrice:billingProfile.maxPrice}" \
--output table
Schreibe einen Testprüfpunkt
Öffne Run command > RunShellScript und führe aus:
printf 'CloudTrips Spot checkpoint\nHost: %s\n' "$(hostname)" |
sudo tee /var/lib/cloudtrips-spot-checkpoint.txt
cat /var/lib/cloudtrips-spot-checkpoint.txt
Ein echter unterbrechbarer Job sollte seinen Fortschritt in dauerhaftem externen Speicher sichern. Diese lokale Datei demonstriert die Datenträgeraufbewahrung mit Deallocate, würde aber Verlust oder Löschung des Betriebssystemdatenträgers nicht überstehen.
Simuliere eine Entfernung
Führe in Azure Cloud Shell aus:
az vm simulate-eviction \
--resource-group rg-cloudtrips-spot-test-weu \
--name vm-cloudtrips-spot01-test-weu
Die Anfrage sollte Erfolg melden. Warte und prüfe den VM-Status:
az vm get-instance-view \
--resource-group rg-cloudtrips-spot-test-weu \
--name vm-cloudtrips-spot01-test-weu \
--query "instanceView.statuses[?starts_with(code, 'PowerState/')].displayStatus" \
--output tsv
Erwarteter Status:
VM deallocated

Die VM verarbeitet keine Arbeit mehr, aber VM-Ressource und Betriebssystemdatenträger bleiben erhalten. Du kannst Start versuchen. Die Zuweisung kann abhängig von der aktuellen Spot-Kapazität erfolgreich sein oder fehlschlagen. Überprüfe nach einem erfolgreichen Start mit Run Command, dass die Prüfpunktdatei noch existiert.
Bereinige
Lösche die eigene Ressourcengruppe unabhängig davon, ob die VM neu gestartet werden kann:
az group delete \
--name rg-cloudtrips-spot-test-weu \
--yes
Überprüfe, dass az group exists --name rg-cloudtrips-spot-test-weu den Wert
false zurückgibt.