Verwenden eines verwalteten Images zum Erstellen eines benutzerdefinierten Imagepools

Zum Erstellen eines benutzerdefinierten Imagepools für die VMs Ihres Batch-Pools können mithilfe eines verwalteten Images ein Azure Compute Gallery-Image erstellen. Die ausschließliche Verwendung eines verwalteten Images wird ebenfalls unterstützt, jedoch nur für API-Versionen bis einschließlich 2019-08-01.

Warnung

Unterstützung für die Erstellung eines Batch-Pools mit einem verwalteten Image wird nach dem 31. März 2026 eingestellt. Migrieren Sie zum Hosten benutzerdefinierter Images in die Azure Compute Gallery, um einen benutzerdefinierten Imagepool in Batch zu erstellen. Weitere Informationen finden Sie im Migrationshandbuch.

In diesem Thema wird erläutert, wie ein benutzerdefinierter Imagepool nur mithilfe eines verwalteten Images erstellt wird.

Voraussetzungen

  • Eine verwaltete Imageressource: Um einen Pool von virtuellen Computern mithilfe eines benutzerdefinierten Images zu erstellen, müssen Sie eine verwaltete Imageressource in demselben Azure-Abonnement und in derselben Region wie das Batch-Konto besitzen oder erstellen. Das Image sollte auf der Grundlage von Momentaufnahmen des Betriebssystemdatenträgers der VM und optional der angefügten Datenträger erstellt werden.

    • Verwenden Sie ein eindeutiges benutzerdefiniertes Image für jeden von Ihnen erstellten Pool.
    • Geben Sie die Ressourcen-ID des Images im Format /subscriptions/xxxx-xxxxxx-xxxxx-xxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/myImage an, wenn Sie mithilfe der Batch-APIs einen Pool mit dem Image erstellen möchten.
    • Die verwaltete Imageressource sollte während der Lebensdauer des Pools vorhanden sein, damit der Pool zentral hochskaliert werden kann. Nach dem Löschen des Pools kann sie entfernt werden.
  • Microsoft Entra-Authentifizierung. Die Batch-Client-API muss die Microsoft Entra-Authentifizierung verwenden. Die Azure Batch-Unterstützung für Microsoft Entra ID ist unter Authentifizieren von Lösungen des Azure Batch-Diensts mit Active Directory dokumentiert.

Vorbereiten eines verwalteten Images

In Azure können Sie ein verwaltetes Image über folgende Komponenten vorbereiten:

  • Momentaufnahmen des Betriebssystems und der Datenträger eines virtuellen Azure-Computers
  • Einen generalisierten virtuellen Azure-Computer mit verwalteten Datenträgern
  • Eine generalisierte lokale VHD, die in die Cloud hochgeladen wurde

Es wird empfohlen, für die zuverlässige Skalierung von Batch-Pools mit einem verwalteten Image das verwaltete Image nur mit der ersten Methode zu erstellen: Momentaufnahmen der Datenträger des virtuellen Computers. In den folgenden Schritten wird gezeigt, wie Sie einen virtuellen Computer vorbereiten, eine Momentaufnahme erstellen und ein verwaltetes Image auf der Grundlage der Momentaufnahme erstellen.

Vorbereiten eines virtuellen Computers

Wenn Sie einen neuen virtuellen Computer für das Image erstellen, können Sie ein von Batch unterstütztes Azure Marketplace-Erstanbieterimage als Basisimage für Ihr verwaltetes Image verwenden. Nur Images von Erstanbietern können als Basisimage verwendet werden. Eine vollständige Liste der von Azure Batch unterstützten Azure Marketplace-Imageverweisen finden Sie unter Liste unterstützter Images.

Hinweis

Sie können kein Image von Drittanbietern verwenden, das über zusätzliche Lizenz- und Kaufbedingungen zu Ihrem Basisimage verfügt. Informationen zu diesen Marketplace-Images finden Sie in der Anleitung für Linux- oder Windows-VMs.

Um ein Drittanbieterimage zu verwenden, können Sie die Azure Compute Gallery verwenden. Weitere Informationen finden Sie unter Verwenden der Azure Compute Gallery zum Erstellen eines benutzerdefinierten Imagepools.

  • Stellen Sie sicher, dass der virtuelle Computer mit einem verwalteten Datenträger erstellt wird. Dies ist die Standardeinstellung für den Speicher, wenn Sie einen virtuellen Computer erstellen.
  • Installieren Sie auf dem virtuellen Computer keine Azure-Erweiterungen wie zum Beispiel die benutzerdefinierte Skripterweiterung. Wenn das Image eine vorinstallierte Erweiterung enthält, treten in Azure beim Bereitstellen des Batch-Pools unter Umständen Probleme auf.
  • Wenn Sie die angefügten Datenträger verwenden, müssen Sie sie innerhalb eines virtuellen Computers einbinden und formatieren, um sie zu verwenden.
  • Stellen Sie sicher, dass das von Ihnen bereitgestellte Basisbetriebssystem-Image den standardmäßigen temporären Datenträger verwendet. Der Batch-Knoten-Agent erwartet derzeit den standardmäßigen temporären Datenträger.
  • Stellen Sie sicher, dass der Betriebssystemdatenträger nicht verschlüsselt ist.
  • Sobald der virtuelle Computer ausgeführt wird, stellen Sie über RDP (für Windows) oder SSH (für Linux) eine Verbindung mit ihm her. Installieren Sie erforderliche Software, oder kopieren Sie die gewünschten Daten.

Erstellen einer Momentaufnahme eines virtuellen Computers

Eine Momentaufnahme ist eine vollständige, schreibgeschützte Kopie einer VHD. Sie können zum Erstellen einer Momentaufnahme des Betriebssystemdatenträgers oder der Datenträger einer VM das Azure-Portal oder Befehlszeilentools verwenden. Die Schritte und Optionen zur Erstellung eines Snapshots finden Sie in der Anleitung für VMs.

Erstellen eines Images auf der Grundlage von Momentaufnahmen

Verwenden Sie zum Erstellen eines verwalteten Images auf der Grundlage einer Momentaufnahme Azure-Befehlszeilentools, etwa den Befehl az image create. Sie können ein Image erstellen, indem Sie eine Momentaufnahme des Betriebssystemdatenträgers und optional Momentaufnahmen der Datenträger angeben.

Erstellen eines Pools aus einem verwalteten Image

Nachdem Sie die Ressourcen-ID des verwalteten Images gefunden haben, erstellen Sie einen benutzerdefinierten Imagepool aus diesem Image. In den folgenden Schritten wird gezeigt, wie Sie einen benutzerdefinierten Imagepool mit dem Batch-Dienst oder dem Batch Management erstellen.

Hinweis

Stellen Sie sicher, dass die Identität, die Sie für die Microsoft Entra-Authentifizierung verwenden, über Berechtigungen für die Imageressource verfügt. Weitere Informationen finden Sie unter Authentifizieren von Lösungen des Azure Batch-Diensts mit Active Directory.

Die Ressource für das verwaltete Image muss während der gesamten Lebensdauer des Pools vorhanden sein. Wenn die zugrunde liegende Ressource gelöscht wird, kann der Pool nicht skaliert werden.

Batch-Dienst .NET SDK

private static VirtualMachineConfiguration CreateVirtualMachineConfiguration(ImageReference imageReference)
{
    return new VirtualMachineConfiguration(
        imageReference: imageReference,
        nodeAgentSkuId: "batch.node.windows amd64");
}

private static ImageReference CreateImageReference()
{
    return new ImageReference(
        virtualMachineImageId: "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/images/{image definition name}");
}

private static void CreateBatchPool(BatchClient batchClient, VirtualMachineConfiguration vmConfiguration)
{
    try
    {
        CloudPool pool = batchClient.PoolOperations.CreatePool(
            poolId: PoolId,
            targetDedicatedComputeNodes: PoolNodeCount,
            virtualMachineSize: PoolVMSize,
            virtualMachineConfiguration: vmConfiguration);

        pool.Commit();
    }

Batch Management-REST-API

REST-API-URI

 PUT https://management.azure.com/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Batch/batchAccounts/{account name}/pools/{pool name}?api-version=2020-03-01

Anforderungstext

 {
   "properties": {
     "vmSize": "{VM size}",
     "deploymentConfiguration": {
       "virtualMachineConfiguration": {
         "imageReference": {
           "id": "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/images/{image name}"
         },
         "nodeAgentSkuId": "{Node Agent SKU ID}"
       }
     }
   }
 }

Überlegungen zu großen Pools

Wenn Sie mithilfe eines benutzerdefinierten Images einen Pool mit mehreren hundert virtuellen Computern erstellen möchten, folgen Sie den obigen Anweisungen, um ein Image zu verwenden, das mithilfe einer Momentaufnahme eines virtuellen Computers erstellt wurde.

Beachten Sie außerdem die folgenden Überlegungen:

  • Größenbeschränkungen - Batch Limits beschränkt die Poolgröße auf 2.500 dedizierte Computeknoten oder 1.000 Spot-Knoten, wenn Sie ein benutzerdefiniertes Image verwenden.

    Wenn Sie zum Erstellen mehrerer Pools das gleiche Image (oder mehrere Images, die auf der gleichen zugrunde liegenden Momentaufnahme basieren) verwenden, darf die Gesamtanzahl von Computeknoten in den Pools den oben genannten Grenzwert nicht überschreiten. Ein Image oder die zugrunde liegende Momentaufnahme sollte maximal für einen Pool verwendet werden.

    Die Grenzwerte können niedriger sein, wenn Sie den Pool mit NAT-Eingangspools konfigurieren.

  • Timeout bei Größenänderung: Wenn Ihr Pool eine feste Anzahl von Knoten enthält (also nicht automatisch skaliert wird), erhöhen Sie die Eigenschaft „resizeTimeout“ des Pools (beispielsweise auf einen Wert zwischen 20 und 30 Minuten). Erreicht der Pool innerhalb des Timeoutzeitraums nicht die Zielgröße, führen Sie einen weiteren Vorgang zur Größenänderung aus.

    Wenn Sie einen Pool mit mehr als 300 Computeknoten planen, müssen Sie die Größe des Pools unter Umständen mehrmals ändern, um die Zielgröße zu erreichen.

Mithilfe des Azure Compute Gallery können Sie größere Pools mit Ihren benutzerdefinierten Images und mehr Replikaten für freigegebene Images erstellen und die Leistungsvorteile verbessern, wie z. B. eine kürzere Zeit für die Bereitstellung von Knoten.

Überlegungen zur Verwendung von Packer

Das direkte Erstellen einer verwalteten Imageressource mit Packer kann nur mit dem Benutzerabonnementmodus „Batch-Konten“ erfolgen. Für Konten im Modus „Batch-Dienst“ müssen Sie zuerst eine VHD erstellen und dann die VHD in eine verwaltete Imageressource importieren. Abhängig von Ihrem Poolzuordnungsmodus (Benutzerabonnement oder Batch-Dienst) können Ihre Schritte zum Erstellen einer verwalteten Imageressource variieren.

Stellen Sie sicher, dass die zur Erstellung des verwalteten Images verwendete Ressource für die Lebensdauer eines Pools mit Verweis auf das benutzerdefinierte Image vorhanden ist. Andernfalls kann es zu Fehlern bei der Poolzuordnung und/oder Skalierung kommen.

Wenn das Image oder die zugrunde liegende Ressource entfernt wird, erhalten Sie möglicherweise einen ähnlichen Fehler wie: There was an error encountered while performing the last resize on the pool. Please try resizing the pool again. Code: AllocationFailed. Sollten Sie diese Fehlermeldung erhalten, stellen Sie sicher, dass die zugrundeliegende Ressource nicht entfernt wurde.

Weitere Informationen zur Verwendung von Packer zum Erstellen eines virtuellen Computers finden Sie unter Erstellen eines Linux-Images mit Packer oder Erstellen eines Windows Images mit Packer.

Nächste Schritte