Automatisches Erweiterungsupgrade für virtuelle Computer (VM) und Skalierungsgruppen (VMSS) in Azure

Automatische Erweiterungsupgrades sind für Azure Virtual Machines und Azure Virtual Machine Scale Sets verfügbar. Wenn das automatische Erweiterungsupgrade für eine virtuelle Maschine (VM) oder eine Skalierungsgruppe aktiviert ist, wird die Erweiterung automatisch aktualisiert, sobald der Erweiterungsherausgeber eine neue Version für diese Erweiterung freigibt.

Das automatische Erweiterungsupgrade verfügt über die folgenden Features:

  • Azure-VMs und VM-Skalierungsgruppen werden unterstützt.
  • Upgrades werden in einem verfügbarkeitsbasierten Bereitstellungsmodell angewendet.
  • Bei einer VM-Skalierungsgruppe werden höchstens 20 % der VM-Upgrades in der Skalierungsgruppe in einem einzelnen Batch durchgeführt. Ein Batch muss mindestens aus einer VM bestehen.
  • Alle VM-Größen und sowohl Windows- als auch Linux-Erweiterungen sind kompatibel.
  • Automatische Upgrades sind jederzeit optional.
  • VMSS beliebiger Größe werden aktiviert.
  • Jede unterstützte Erweiterung wird einzeln registriert. Sie können auswählen, welche Erweiterungen automatisch aktualisiert werden sollen.
  • Alle öffentlichen Cloudregionen werden unterstützt.

Wie funktioniert das automatische Erweiterungsupgrade?

Der Erweiterungsupgradeprozess ersetzt die vorhandene Erweiterungsversion auf einer VM, sobald der Erweiterungsherausgeber eine neue Version derselben Erweiterung veröffentlicht. Die Integrität der VM wird überwacht, nachdem die neue Erweiterung installiert wurde. Wenn sich die VM fünf Minuten nach dem Upgrade noch nicht in einem fehlerfreien Zustand befindet, wird für die Erweiterungsversion ein Rollback auf die vorherige Version ausgeführt.

Ein fehlerhaftes Erweiterungsupgrade wird automatisch wiederholt. Ein Wiederholungsversuch wird regelmäßig nach einigen Tagen ohne Benutzereingriff automatisch durchgeführt.

Updates nach Verfügbarkeit

Mit dem Verfügbarkeitsmodell für plattformorchestrierte Upgrades wird sichergestellt, dass die Verfügbarkeitskonfigurationen in Azure über mehrere Verfügbarkeitsstufen hinweg berücksichtigt werden.

Für eine Gruppe von VMs, für die ein Upgrade durchgeführt wird, orchestriert die Azure-Plattform Upgrades über Regionen hinweg, innerhalb einer Region und innerhalb einer Gruppe.

bei Verschiebung in eine andere Region

  • Ein Upgrade wird phasenweise global in Azure ausgeführt, um Azure-weite Bereitstellungsausfälle zu vermeiden.
  • Eine „Phase“ kann sich über eine oder mehrere Regionen erstrecken, und ein Upgrade erfolgt nur dann phasenübergreifend, wenn die in Frage kommenden VMs in der vorherigen Phase erfolgreich aktualisiert wurden.
  • Georegionspaare werden nicht gleichzeitig upgegradet und können sich nicht in der gleichen Regionsphase befinden.
  • Der Erfolg eines Upgrades wird durch die Nachverfolgung der Integrität nach dem Upgrade einer VM gemessen. Die VM-Integrität wird durch Integritätsindikatoren der Plattform für die VM nachverfolgt. Für Virtual Machine Scale Sets wird die Integrität der VM durch Anwendungsintegritätstests oder die Anwendungsintegritätserweiterung nachverfolgt, wenn diese auf die Skalierungsgruppe angewendet werden.

Innerhalb einer Region

  • VMs in verschiedenen Verfügbarkeitszonen werden nicht gleichzeitig mit demselben Upgrade aktualisiert.
  • Einzelne VMs, die nicht Teil einer Verfügbarkeitsgruppe sind, werden nach bestem Wissen in einem Batch zusammengefasst, um gleichzeitige Upgrades für alle VMs in einem Abonnement zu vermeiden.

Innerhalb einer Gruppe

  • Die VMs in einer gemeinsamen Verfügbarkeitsgruppe oder Skalierungsgruppe werden nicht alle gleichzeitig upgegradet.
  • Für VMs in einer allgemeinen Verfügbarkeitsgruppe wird ein Upgrade innerhalb von Updatedomänengrenzen durchgeführt. VMs in mehreren Updatedomänen werden nicht gleichzeitig aktualisiert.
  • VMs in einer gemeinsamen VM-Skalierungsgruppe werden in Batches gruppiert und innerhalb der Grenzen von Upgradedomänen aktualisiert. Upgraderichtlinien, die für die Skalierungsgruppe definiert sind, werden während des Upgrades berücksichtigt. Jede Gruppe wird mithilfe einer fortlaufenden Upgrade-Strategie aktualisiert.

Upgradeprozess für Virtual Machine Scale Sets

  • Vor Beginn des Upgradeprozesses vergewissert sich der Orchestrator, dass maximal 20 Prozent der virtuellen Computer in der gesamten Skalierungsgruppe fehlerhaft sind (unabhängig von der Ursache).
  • Der Upgradeorchestrator identifiziert den Batch der VM-Instanzen, die aktualisiert werden sollen. Ein Upgradebatch kann maximal 20 % der VM-Gesamtzahl umfassen, wobei eine minimale Batchgröße von einer VM vorausgesetzt wird. Der Orchestrator berücksichtigt die Definition der Upgraderichtlinie und der Verfügbarkeitszonen, während der Batch identifiziert wird.
  • Nach dem Upgrade wird die VM-Integrität immer überwacht, bevor Sie zum nächsten Batch wechseln. Bei Skalierungssätzen mit konfigurierten Anwendungsintegritätssonden oder der Anwendungsintegritätserweiterung wird auch der Anwendungsstatus überwacht. Das Upgrade wartet bis zu 5 Minuten (bzw. die definierte Konfiguration der Integritätssonde), bis der virtuelle Computer fehlerfrei ist, bevor das nächste Batch aktualisiert wird. Wird die Integrität einer VM nach einem Upgrade nicht wiederhergestellt, dann wird standardmäßig wieder die vorherige Erweiterungsversion auf dem virtuellen Computer installiert.
  • Der Upgradeorchestrator verfolgt auch den Prozentsatz der VMs nach, die nach einem Upgrade fehlerhaft werden. Das Upgrade wird beendet, wenn während des Upgradeprozesses mehr als 20 Prozent der aktualisierten Instanzen fehlerhaft werden.

Dieses Verfahren wird fortgesetzt, bis alle Instanzen in der Skalierungsgruppe upgegradet sind.

Der Upgradeorchestrator für die Skalierungsgruppe überprüft die allgemeine Skalierungsgruppenintegrität, bevor die einzelnen Batches aktualisiert werden. Während eines Batchupgrades können andere gleichzeitig geplante oder ungeplante Wartungsaktivitäten die Integrität der VMs in Ihrer Skalierungsgruppe beeinflussen. Wenn in solchen Fällen bei mehr als 20 % der Instanzen der Skalierungsgruppe die Integrität beeinträchtigt wird, endet das Upgrade der Skalierungsgruppe am Ende des aktuellen Batches.

Unterstützte Erweiterungen

Das automatische Erweiterungsupgrade unterstützt die folgenden Erweiterungen (weitere werden regelmäßig hinzugefügt):


Aktivieren des automatischen Erweiterungsupgrades

Um das automatische Erweiterungsupgrade für eine Erweiterung zu aktivieren, müssen Sie sicherstellen, dass die Eigenschaft enableAutomaticUpgrade auf true festgelegt ist und jeder Erweiterungsdefinition einzeln hinzugefügt wird.

Verwenden des Azure-Portals

Verwenden Sie im Azure-Portal den Bereich Erweiterung, um das automatische Upgrade von Erweiterungen auf vorhandenen VMs und Virtual Machine Scale Sets zu aktivieren.

  1. Wechseln Sie zum Bereich Virtuelle Computer oder VM-Skalierungsgruppen, und wählen Sie den Ressourcennamen aus.

  2. Wechseln Sie unter Einstellungen zum Bereich Erweiterungen + Anwendungen, in dem alle auf der Ressource installierten Erweiterungen angezeigt werden. In der Spalte Status des automatischen Upgrades wird angegeben, ob das automatische Upgrade der Erweiterung aktiviert, deaktiviert oder nicht unterstützt wird.

  3. Wählen Sie den Erweiterungsnamen aus, um den Detailbereich Erweiterungen zu öffnen.

    Screenshot: Bereich „Erweiterungen“ im Azure-Portal

  4. Wählen Sie Automatisches Upgrade aktivieren, um das automatische Upgrade der Erweiterung zu aktivieren. Verwenden Sie diese Schaltfläche, um bei Bedarf ein automatisches Upgrade zu deaktivieren.

    Screenshot: Aktivieren des automatischen Upgrades im Azure-Portal.

Für virtuelle Computer

Rufen Sie Folgendes auf, um das automatische Erweiterungsupgrade für eine Erweiterung (in diesem Beispiel die Dependency-Agent-Erweiterung) auf einem virtuellen Azure-Computer zu aktivieren:

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<vmName>/extensions/<extensionName>?api-version=2019-12-01`
{    
    "name": "extensionName",
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "location": "<location>",
    "properties": {
        "autoUpgradeMinorVersion": true,
        "enableAutomaticUpgrade": true, 
        "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
        "type": "DependencyAgentWindows",
        "typeHandlerVersion": "9.5"
        }
}

Für Virtual Machine Scale Sets gilt

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<vmssName>?api-version=2019-12-01`
{
   "location": "<location>",
   "properties": {
   	    "virtualMachineProfile": {
            "extensionProfile": {
       	        "extensions": [
            	{
                "name": "<extensionName>",
            	  "properties": {
             		    "autoUpgradeMinorVersion": true,
             		    "enableAutomaticUpgrade": true,
              	    "publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
              	    "type": "DependencyAgentWindows",
              	    "typeHandlerVersion": "9.5"
            		}
          	    }
        	    ]
    	    }
    	}
    }
}

Hinweis

Diese Vorgänge legen die Eigenschaft enableAutomaticUpgrade für die VM-Skalierungsgruppenressource auf true fest, aber nicht auf den zugrunde liegenden VMs.

Wenn die VM-Skalierungsgruppe den automatischen oder rollierenden Upgrademodus in upgradeProfile definiert, gibt die VM-Skalierungsgruppe automatisch die Änderung an jede zugrunde liegende VM weiter.

Wenn die VMSS den manuellen Modus in upgradeProfile definiert, müssen Sie auch jede Instanz manuell aktualisieren und die Änderung an jede zugrunde liegende VM weitergeben.


Erweiterungsupgrades mit mehreren Erweiterungen

Für eine VM oder eine VM-Skalierungsgruppe können mehrere Erweiterungen mit automatischem Erweiterungsupgrade aktiviert sein. Dieselbe VM oder Skalierungsgruppe kann auch über andere Erweiterungen verfügen, ohne dass das automatische Erweiterungsupgrade aktiviert ist.

Wenn mehrere Erweiterungsupgrades für eine VM verfügbar sind, werden die Upgrades möglicherweise gebündelt, aber jedes Erweiterungsupgrade wird einzeln auf eine VM angewendet. Der Ausfall einer Erweiterung wirkt sich nicht auf die anderen Erweiterungen aus, für die möglicherweise gerade ein Upgrade durchgeführt wird. Wenn z. B. zwei Erweiterungen für ein Upgrade geplant sind und das erste Erweiterungsupgrade fehlschlägt, wird die zweite Erweiterung trotzdem aktualisiert.

Sie können auch automatische Erweiterungsupgrades anwenden, wenn für eine VM oder eine VM-Skalierungsgruppe mehrere Erweiterungen mit Erweiterungssequenzierung konfiguriert sind. Die Erweiterungssequenzierung ist für die erstmalige Bereitstellung der VM vorgesehen. Alle zukünftigen Erweiterungsupgrades für eine Erweiterung werden unabhängig voneinander angewendet.

Unterschied zwischen EnableAutomaticUpgrade und AutoUpgradeMinorVersion

  • AutoUpgradeMinorVersion:

    • Diese Eigenschaft wird während der VM-Erstellung und bei der Aktualisierung der VM mit einer neuen Konfiguration verwendet.
    • Bei Festlegung auf true wird sichergestellt, dass die neueste Nebenversion der Erweiterung automatisch auf der VM installiert wird.
    • Dabei wird TypeHandlerVersion mit der neuesten stabilen Nebenversion, die verfügbar ist, überschrieben.
    • Wenn Sie die VM-Konfiguration aktualisieren, wenn eine neue Nebenversion verfügbar ist, gilt dies als Konfigurationsänderung. Die Erweiterung wird mit der neuesten Nebenversion neu installiert.
    • Auf diese Art und Weise können neu erstellte VMs mit der aktuellen stabilen Nebenversion der Erweiterung auf dem neuesten Stand gehalten werden.
    • Wenn Sie die Erweiterung manuell auf eine bestimmte Version festlegen möchten, legen Sie diese Eigenschaft auf false fest.
  • EnableAutomaticUpgrade:

    • Diese Eigenschaft wirkt sich auf vorhandene VMs aus.
    • Sie wirkt sich nicht auf die während der VM-Erstellung installierte Version aus.
    • Aktivieren Sie diese Eigenschaft nach der VM-Erstellung, um ein automatisches Upgrade auszulösen, wenn auf der VM nicht die neueste Nebenversion der Erweiterung ausgeführt wird.
    • Upgrades verursachen keinen VM-Neustart und werden auf sichere Weise eingeführt. Fehlgeschlagene Upgrades werden sofort rückgängig gemacht, um hohe Dienstverfügbarkeit und Zuverlässigkeit zu gewährleisten.
    • Vorhandene VMs werden automatisch auf die aktuelle Nebenversion aktualisiert und bleiben dadurch sicher und auf dem neuesten Stand.

Es wird empfohlen, beide Eigenschaften zu aktivieren, um alle VMs sicher und auf dem neuesten Stand zu halten.

Upgrades auf Haupterweiterungsversionen werden niemals automatisch von beiden Eigenschaften ausgeführt, weil Hauptversionen wichtige Änderungen umfassen können. Sie müssen TypeHandlerVersion manuell auf eine Hauptversion festlegen und für jede vorhandene VM manuell ein Upgrade auf die neueste Hauptversion durchführen.

Nächster Schritt