Azure-Spot-VMs und VM-Skalierungsgruppen

Wenn Sie Azure Spot-VMs für Skalierungsgruppen verwenden, profitieren Sie von unserer ungenutzten Kapazität und erzielen erhebliche Kosteneinsparungen. Wenn die Kapazität von Azure wieder benötigt wird, werden die Azure-Spot-VM-Instanzen durch die Azure-Infrastruktur entfernt. Aus diesem Grund eignen sich Azure-Spot-VM-Instanzen hervorragend für Workloads, die Unterbrechungen tolerieren, z. B. Batchverarbeitungsaufträge, Dev/Test-Umgebungen, umfangreiche Computeworkloads und mehr.

Die verfügbare Kapazität kann abhängig von der Größe, Region, Tageszeit usw. variieren. Beim Bereitstellen von Azure-Spot-VM-Instanzen für Skalierungsgruppen wird die Instanz von Azure nur zugeordnet, wenn Kapazität verfügbar ist, für diese Instanzen aber keine SLA besteht. Eine Azure-Spot-VM-Skalierungsgruppe wird in einer einzelnen Fehlerdomäne bereitgestellt und garantiert keine Hochverfügbarkeit.

Preise

Die Preise für Azure-Spot-VM-Instanzen variieren je nach Region und SKU. Weitere Informationen finden Sie unter den Preisen für Linux und Windows.

Bei der variablen Preisgestaltung können Sie einen maximalen Preis in US-Dollar (USD) mit bis zu fünf Dezimalstellen festlegen. Der Wert 0.98765 würde beispielsweise einem maximalen Preis von 0,98765 US-Dollar pro Stunde entsprechen. Wenn Sie den maximalen Preis auf -1 festlegen, wird die Instanz nicht basierend auf dem Preis entfernt. Der Preis für die Instanz entspricht dem aktuellen Preis für Azure-Spot-VM-Instanzen oder dem Preis für eine Standardinstanz, je nachdem, welcher Preis niedriger ist, solange Kapazität und Kontingente verfügbar sind.

Einschränkungen

Die folgenden Größen werden für Azure-Spot-VMs nicht unterstützt:

  • B-Serie
  • Promoversionen beliebiger Größe (z. B. Promogrößen Dv2, NV, NC, H)

Mit Ausnahme von Microsoft Azure China 21ViaNet können Azure-Spot-VMs in jeder beliebigen Region bereitgestellt werden.

Folgende Angebotstypen werden derzeit unterstützt:

  • Enterprise Agreement
  • Angebotscode für nutzungsbasierte Bezahlung (003P)
  • Gesponsert (0036P und 0136P)
  • Informationen zu Cloud-Dienstanbietern (CSP) finden Sie in Partner Center, oder indem Sie sich direkt an Ihren Partner wenden.

Entfernungsrichtlinie

Wenn Sie eine Skalierungsgruppe mit Azure-Spot-VMs erstellen, können Sie die Entfernungsrichtlinie auf Zuordnung aufheben (Standardeinstellung) oder Löschen festlegen.

Durch die Richtlinie Zuordnung aufheben werden die entfernten Instanzen in den Zustand „Beendet/Zuordnung aufgehoben“ versetzt, sodass Sie entfernte Instanzen erneut bereitstellen können. Es gibt jedoch keine Garantie dafür, dass die Zuordnung erfolgreich ist. Die virtuellen Computer, deren Zuordnung aufgehoben wurde, werden auf Ihr Kontingent an Skalierungsgruppeninstanzen angerechnet, und die zugrunde liegenden Datenträger werden Ihnen in Rechnung gestellt.

Wenn die Instanzen beim Entfernen gelöscht werden sollen, legen Sie die Entfernungsrichtlinie auf Löschen fest. Wenn die Entfernungsrichtlinie zum Löschen festgelegt ist, können Sie neue VMs durch Heraufsetzen der Skalierungsgruppeninstanzenanzahl-Eigenschaft erstellen. Die entfernten VMs werden zusammen mit ihren zugrunde liegenden Datenträgern gelöscht, und darum fallen keine Kosten für ihre Speicherung an. Sie können auch die Funktion zur automatischen Skalierung von Skalierungsgruppen verwenden, um zu versuchen, entfernte VMs automatisch zu kompensieren, es gibt jedoch keine Garantie, dass die Zuordnung erfolgreich ist. Die Funktion für die Autoskalierung sollte nur für Azure-Spot-VM-Skalierungsgruppen verwendet werden, wenn Sie die Entfernungsrichtlinie auf „Löschen“ festlegen. So vermeiden Sie Kosten für Datenträger und das Überschreiten von Kontingentgrenzen.

Benutzer können Benachrichtigungen in der VM über Azure Scheduled Events abonnieren. Dadurch werden Sie benachrichtigt, wenn Ihre virtuellen Computer entfernt werden, und Sie haben vor dem Entfernen 30 Sekunden Zeit, Aufträge abzuschließen und die VMs herunterzufahren.

Testen und wiederherstellen (Vorschau)

Diese neue Funktion auf Plattformebene nutzt KI, um automatisch zu versuchen, entfernte Instanzen von Azure-Spot-VMs in einer Skalierungsgruppe wiederherzustellen und so die Zielanzahl von Instanzen beizubehalten.

Wichtig

„Testen und wiederherstellen“ ist zurzeit als öffentliche Vorschauversion verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Vorteile von „Testen und wiederherstellen“:

  • Versuche zur Wiederherstellung von Azure-Spot-VMs, die aufgrund der Kapazität entfernt wurden
  • Bei wiederhergestellten Azure-Spot-VMs wird eine längere Ausführungszeit erwartet bei einer niedrigeren Wahrscheinlichkeit der Entfernung aufgrund der Kapazität
  • Längere Lebensdauer von Azure-Spot-VMs und damit längere Ausführungszeit von Workloads
  • Unterstützt Virtual Machine Scale Sets bei der Einhaltung der Zielanzahl von Azure-Spot-VMs (ähnlich wie bei der Funktion zur Beibehaltung der Zielanzahl für VMs mit nutzungsbasierter Bezahlung)

„Testen und wiederherstellen“ ist in Skalierungsgruppen mit Autoskalierung deaktiviert. Die Anzahl der VMs in der Skalierungsgruppe wird über die Regeln für die Autoskalierung gesteuert.

Registrieren für „Testen und wiederherstellen“

Bevor Sie das Feature zum Testen und Wiederherstellen verwenden können, müssen Sie Ihr Abonnement für die Vorschauversion registrieren. Die Registrierung kann mehrere Minuten dauern. Sie können die Azure CLI oder PowerShell verwenden, um die Featureregistrierung abzuschließen.

Verwenden der CLI 2.0

Verwenden Sie az feature register, um die Vorschauversion für Ihr Abonnement zu aktivieren.

az feature register --namespace Microsoft.Compute --name SpotTryRestore 

Die Featureregistrierung kann bis zu 15 Minuten dauern. So überprüfen Sie den Registrierungsstatus:

az feature show --namespace Microsoft.Compute --name SpotTryRestore 

Schließen Sie den Opt-in-Prozess ab, nachdem Sie das Feature für Ihr Abonnement registriert haben, indem Sie die Änderung an den Computeressourcenanbieter weitergeben.

az provider register --namespace Microsoft.Compute 

Verwenden von PowerShell

Verwenden Sie das Cmdlet Register-AzProviderFeature, um die Vorschauversion für Ihr Abonnement zu aktivieren.

Register-AzProviderFeature -FeatureName SpotTryRestore -ProviderNamespace Microsoft.Compute 

Die Featureregistrierung kann bis zu 15 Minuten dauern. So überprüfen Sie den Registrierungsstatus:

Get-AzProviderFeature -FeatureName SpotTryRestore -ProviderNamespace Microsoft.Compute 

Schließen Sie den Opt-in-Prozess ab, nachdem Sie das Feature für Ihr Abonnement registriert haben, indem Sie die Änderung an den Computeressourcenanbieter weitergeben.

Register-AzResourceProvider -ProviderNamespace Microsoft.Compute 

Platzierungsgruppen

Eine Platzierungsgruppe ist ein ähnliches Konstrukt wie eine Azure-Verfügbarkeitsgruppe und verfügt über eigene Fehler- und Upgradedomänen. Standardmäßig besteht eine Skalierungsgruppe aus einer einzelnen Platzierungsgruppe mit einer maximalen Größe von 100 virtuellen Computern. Wenn die Skalierungsgruppeneigenschaft singlePlacementGroup auf false festgelegt ist, kann die Skalierungsgruppe mehrere Platzierungsgruppen und bis zu 1.000 virtuelle Computer umfassen.

Wichtig

Sofern Sie nicht InfiniBand mit HPC verwenden, wird dringend empfohlen, die Skalierungsgruppeneigenschaft singlePlacementGroup auf false festzulegen, um mehrere Platzierungsgruppen für eine bessere Skalierung in der Region oder Zone zu ermöglichen.

Bereitstellen von Azure-Spot-VMs in Skalierungsgruppen

Zum Bereitstellen von Azure-Spot-VMs in Skalierungsgruppen können Sie das neue Priority-Flag auf Spot festlegen. Für alle VMs in Ihrer Skalierungsgruppe wird „Spot“ festgelegt. Verwenden Sie zum Erstellen einer Skalierungsgruppe mit Azure-Spot-VMs eine der folgenden Methoden:

Portal

Das Erstellen einer Skalierungsgruppe, die Azure-Spot-VMs nutzt, entspricht den Ausführungen im Artikel Erste Schritte. Wenn Sie eine Skalierungsgruppe bereitstellen, können Sie das Spot-Flag und die Entfernungsrichtlinie festlegen: Erstellen einer Skalierungsgruppe mit Azure-Spot-VMs

Azure CLI

Das Erstellen einer Skalierungsgruppe mit Azure-Spot-VMs entspricht den Ausführungen im Artikel Erste Schritte. Fügen Sie einfach „--Priority Spot“ und --max-price hinzu. In diesem Beispiel verwenden wir -1 für --max-price, sodass die Instanz nicht basierend auf dem Preis entfernt wird.

az vmss create \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --image UbuntuLTS \
    --upgrade-policy-mode automatic \
    --single-placement-group false \
    --admin-username azureuser \
    --generate-ssh-keys \
    --priority Spot \
    --max-price -1 

PowerShell

Das Erstellen einer Skalierungsgruppe mit Azure-Spot-VMs entspricht den Ausführungen im Artikel Erste Schritte. Fügen Sie einfach „-Priority Spot“ hinzu, und geben Sie -max-price für New-AzVmssConfig an.

$vmssConfig = New-AzVmssConfig `
    -Location "East US 2" `
    -SkuCapacity 2 `
    -SkuName "Standard_DS2" `
    -UpgradePolicyMode Automatic `
    -Priority "Spot" `
    -max-price -1

Resource Manager-Vorlagen

Das Erstellen einer Skalierungsgruppe, die Azure-Spot-VMs nutzt, entspricht den Ausführungen im Artikel „Erste Schritte“ zu Linux oder Windows.

Verwenden Sie für die Bereitstellung von Azure-Spot-VMs mithilfe einer Vorlage die "apiVersion": "2019-03-01" oder höher.

Fügen Sie dem Abschnitt "virtualMachineProfile": in Ihrer Vorlage die Eigenschaften priority, evictionPolicy und billingProfile und dem Abschnitt "Microsoft.Compute/virtualMachineScaleSets" die Eigenschaft "singlePlacementGroup": false, hinzu:


{
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  },
  "properties": {
    "singlePlacementGroup": false,
    }

        "virtualMachineProfile": {
              "priority": "Spot",
                "evictionPolicy": "Deallocate",
                "billingProfile": {
                    "maxPrice": -1
                }
            },

Um die Instanz nach dem Entfernen zu löschen, ändern Sie den evictionPolicy-Parameter in Delete.

Simulieren einer Entfernung

Sie können die Entfernung einer Azure-Spot-VM simulieren, um zu testen, wie gut die Anwendung auf einen plötzlichen Entfernungsvorgang reagiert.

Ersetzen Sie Folgendes durch Ihre Informationen:

  • subscriptionId
  • resourceGroupName
  • vmName
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/simulateEviction?api-version=2020-06-01

Response Code: 204 bedeutet, dass die simulierte Entfernung erfolgreich war.

Häufig gestellte Fragen

F: Ist eine Azure-Spot-VM-Instanz nach der Erstellung identisch mit einer Standardinstanz?

A: Ja, mit der Ausnahme, dass für Azure-Spot-VMs keine SLA besteht und dass sie jederzeit entfernt werden können.

F: Was kann ich tun, wenn ich nach dem Entfernen immer noch Kapazität benötige?

A: Es wird empfohlen, anstelle von Azure-Spot-VMs Standard-VMs zu verwenden, wenn Sie die Kapazität sofort benötigen.

F: Wie wird das Kontingent für eine Azure-Spot-VM verwaltet?

A: Für Azure-Spot-VM-Instanzen und Standardinstanzen werden getrennte Kontingentpools verwendet. Das Kontingent für eine Azure-Spot-VM wird von den VMs und Skalierungsgruppeninstanzen gemeinsam genutzt. Weitere Informationen finden Sie unter Grenzwerte für Azure-Abonnements, -Dienste und -Kontingente sowie allgemeine Beschränkungen.

F: Kann ich für eine Azure-Spot-VM zusätzliches Kontingent anfordern?

A: Ja, Sie können eine Anforderung zur Erhöhung Ihres Kontingents für Azure-Spot-VMs über den Standardprozess zur Kontingentanforderung übermitteln.

F: Kann ich vorhandene Skalierungsgruppen in Azure-Spot-VM-Skalierungsgruppen umwandeln?

A: Nein. Das Spot-Flag kann nur zum Zeitpunkt der Erstellung festgelegt werden.

F: Wenn ich für Skalierungsgruppen mit niedriger Priorität low verwende, muss ich ab jetzt stattdessen Spot verwenden?

A: Zum jetzigen Zeitpunkt funktionieren sowohl low als auch Spot, Sie sollten aber mit der Umstellung auf Spot beginnen.

F: Kann ich eine Skalierungsgruppe sowohl mit regulären VMs als auch mit Azure-Spot-VMs erstellen?

A: Nein. Eine Skalierungsgruppe kann nicht mehr als einen Prioritätstyp unterstützen.

F: Kann ich die Autoskalierung mit Azure-Spot-VM-Skalierungsgruppen verwenden?

A: Ja, Sie können Regeln für die automatische Skalierung für Ihre Azure-Spot-VM-Skalierungsgruppe festlegen. Wenn Ihre VMs entfernt werden, kann von der Funktion für die Autoskalierung versucht werden, neue Azure-Spot-VMs zu erstellen. Denken Sie aber daran: Dieser Kapazität ist nicht garantiert.

F: Funktioniert die automatische Skalierung mit beiden Entfernungsrichtlinien (Zuordnung aufheben und löschen)?

A: Ja, es empfiehlt sich jedoch, die Entfernungsrichtlinie auf „Löschen“ festzulegen, wenn Sie die Autoskalierung verwenden. Der Grund hierfür ist, dass Instanzen, deren Zuordnung aufgehoben wurde, auf die Kapazität in Ihrer Skalierungsgruppe angerechnet werden. Bei Verwendung der automatischen Skalierung erreichen Sie aufgrund der entfernten Instanzen, deren Zuordnung aufgehoben wurde, die angestrebte Anzahl von Instanzen wahrscheinlich recht schnell. Außerdem kann die Spot-Entfernung Auswirkungen auf Ihre Skalierungsvorgänge haben. Beispielsweise kann es vorkommen, dass VMSS-Instanzen bei Skalierungsvorgängen aufgrund verschiedener Spot-Entfernungen unter die festgelegte Mindestanzahl fallen.

F: Wo kann ich Fragen stellen?

A: Sie können Ihre Frage in Q&A veröffentlichen und mit azure-spot markieren.

Nächste Schritte

Detaillierte Preisinformationen finden Sie auf der Seite Linux VM-Skalierungsgruppen – Preise .