MIG mit GPU-VMs erstellen


In diesem Dokument wird beschrieben, wie Sie eine verwaltete Instanzgruppe (Managed Instance Group, MIG) mit VM-Instanzen mit angehängten GPUs erstellen. Dabei wird beschrieben, wie Sie mithilfe von Anfragen zur Größenänderung und dem Bereitstellungsmodell „Flex-Start“ GPU-VMs auf einmal einer zonalen MIG hinzufügen. Informationen zum Erstellen einer Anfrage zur Größenänderung einer MIG, bei der die Funktionen und Dienste von Cluster Director verwendet werden können, finden Sie in der AI Hypercomputer-Dokumentation unter MIG und Anfrage zur Größenänderung erstellen.

Die Verwendung einer Anfrage zur Größenänderung einer verwalteten Instanzgruppe mit dem Bereitstellungsmodell „Flex-Start“ verbessert die Verfügbarkeit von GPU-VMs. Geben Sie in der Anfrage die Anzahl der GPU-VMs und eine Dauer an, für die diese VMs ausgeführt werden sollen. Der zugrunde liegende Scheduler-Mechanismus Dynamic Workload Scheduler (DWS) plant Anfragen zur Größenänderung, die in der Compute Engine erstellt wurden, basierend auf der angeforderten Dauer und der Ressourcenverfügbarkeit. Sobald die Ressourcen verfügbar sind, erstellt die MIG automatisch die VMs.

Wenn der auf diesen VMs ausgeführte Job vor Ablauf der angeforderten Dauer abgeschlossen ist, können Sie diese VMs löschen. Andernfalls löscht die MIG die VMs automatisch am Ende der Ausführungsdauer.

Weitere Informationen zu anderen grundlegenden Szenarien zum Erstellen einer MIG

Vorbereitung

  • Prüfen Sie Ihr GPU-Kontingent, damit Ihr Kontingent für die angeforderten Ressourcen ausreicht.
  • Weitere Informationen zum Kontingentverbrauch finden Sie unter GPU-VMs und Zuteilungskontingente auf Abruf.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Weitere Informationen finden Sie in der Google Cloud Authentifizierungsdokumentation unter Für die Verwendung von REST authentifizieren.

      Beschränkungen

      Lesen Sie die Einschränkungen für das Erstellen einer Anfrage zur Größenänderung einer MIG.

      MIG erstellen und GPU-VMs hinzufügen gleichzeitig

      So erstellen Sie eine MIG und fügen gleichzeitig GPU-VMs in der Gruppe hinzu:

      1. Erstellen Sie eine Instanzvorlage. Dies ist zum Erstellen einer MIG erforderlich. Die MIG erstellt jede VM in der Gruppe anhand der Instanzvorlage. Geben Sie in der Vorlage die Konfiguration für GPU-VMs und zusätzliche Konfigurationen an, die für die Verwendung von Anfragen zur Größenänderung erforderlich sind.

        Weitere Informationen zu Instanzvorlagen finden Sie unter Instanzvorlagen.

      2. Erstellen Sie eine MIG und eine Anfrage zur Größenänderung, um GPU-VMs gleichzeitig hinzuzufügen.

      Instanzvorlage erstellen

      Erstellen Sie eine Instanzvorlage wie in diesem Abschnitt beschrieben und verwenden Sie die Vorlage dann, um eine MIG zu erstellen.

      Console

      1. Rufen Sie die Seite Instanzvorlagen auf.

        Zu Instanzvorlagen

      2. Klicken Sie auf Instanzvorlage erstellen. Die Seite Instanzvorlage erstellen wird geöffnet.

      3. Geben Sie im Feld Name einen Namen für die Instanzvorlage ein.

      4. Führen Sie im Abschnitt Maschinenkonfiguration die folgenden Schritte aus:

        1. Klicken Sie auf den Tab GPUs.

        2. Wählen Sie im Menü GPU-Typ den GPU-Typ.

        3. Wählen Sie in der Liste Anzahl der GPUs die Anzahl der GPUs aus.

        4. Wählen Sie im Abschnitt Maschinentyp einen Maschinentyp aus.

      5. Führen Sie im Abschnitt Bereitstellungsmodell die folgenden Schritte aus:

        1. Wählen Sie in der Liste VM-Bereitstellungsmodell die Option Flex-Start aus.

        2. Wenn Sie eine Laufzeit für die über die Instanzvorlage erstellten VMs festlegen möchten, geben Sie im Feld Anzahl der Stunden eingeben die Anzahl der Stunden ein. Der Wert muss zwischen einer Stunde (1) und sieben Tagen (168) liegen.

      6. Optional: Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um den Standardwert für den Bootlaufwerktyp oder das Image zu ändern. Folgen Sie dann den Aufforderungen, um das Bootlaufwerk zu ändern.

      7. Klicken Sie auf Erstellen.

      gcloud

      Erstellen Sie mit dem Befehl beta instance-templates create eine Instanzvorlage:

      gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \
          --image-project=IMAGE_PROJECT \
          --image-family=IMAGE_FAMILY \
          --instance-termination-action=DELETE \
          --instance-template-region=REGION \
          --machine-type=MACHINE_TYPE \
          --maintenance-policy=TERMINATE \
          --max-run-duration=RUN_DURATION \
          --provisioning-model=FLEX_START \
          --reservation-affinity=none
      

      Ersetzen Sie Folgendes:

      • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.

      • IMAGE_PROJECT: das Image-Projekt, das das Image enthält, z. B. debian-cloud. Weitere Informationen zu den unterstützten Image-Projekten finden Sie unter Öffentliche Images.

      • IMAGE_FAMILY ist eine Image-Familie. Diese gibt das neueste nicht verworfene Betriebssystem-Image an. Beispiel: Wenn Sie debian-12 angeben, wird die aktuelle Version in der Debian 12-Image-Familie verwendet. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

      • REGION: Region, in der die Instanzvorlage erstellt werden soll.

      • MACHINE_TYPE ist ein Maschinentyp, der GPUs unterstützt. Wenn Sie einen N1-Maschinentyp angeben, fügen Sie das Flag --accelerator ein, um die Anzahl und den Typ der GPUs anzugeben, die an Ihre VMs angehängt werden sollen.

      • RUN_DURATION: durch die Dauer, für die die angeforderten VMs ausgeführt werden sollen. Der Wert muss als Anzahl von Tagen, Stunden, Minuten oder Sekunden gefolgt von d, h, m oder s formatiert werden. Geben Sie beispielsweise 30m für 30 Minuten oder 1d2h3m4s für einen Tag, zwei Stunden, drei Minuten und vier Sekunden an. Der Wert muss zwischen 10 Minuten und 7 Tagen liegen.

      REST

      Erstellen Sie eine Instanzvorlage. Stellen Sie dazu eine POST-Anfrage an die Methode beta.instanceTemplates.insert:

      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates
      
      {
        "name": "INSTANCE_TEMPLATE_NAME",
        "properties": {
          "disks": [
            {
              "boot": true,
              "initializeParams": {
                "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE
              }
            }
          ],
          "machineType": "MACHINE_TYPE",
          "networkInterfaces": [
            {
              "network": "global/networks/default"
            }
          ],
          "reservationAffinity": {
            "consumeReservationType": "NO_RESERVATION"
          },
          "scheduling": {
            "instanceTerminationAction": "DELETE",
            "maxRunDuration": {
              "seconds": RUN_DURATION
            },
            "onHostMaintenance": "TERMINATE",
            "provisioningModel": "FLEX_START"
          }
        }
      }
      

      Ersetzen Sie Folgendes:

      • PROJECT_ID: die ID des Projekts, in dem Sie die Instanzvorlage erstellen möchten.

      • REGION: Region, in der die Instanzvorlage erstellt werden soll.

      • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.

      • IMAGE_PROJECT: das Image-Projekt, das das Image enthält, z. B. debian-cloud. Weitere Informationen zu den unterstützten Image-Projekten finden Sie unter Öffentliche Images.

      • IMAGE: Wählen Sie eine der folgenden Optionen aus:

        • Eine bestimmte Version des Betriebssystem-Images; Beispiel: debian-12-bookworm-v20240617.

        • Eine Image-Familie, die als family/IMAGE_FAMILY formatiert sein muss. Diese gibt das neueste nicht verworfene Betriebssystem-Image an. Beispiel: Wenn Sie family/debian-12 angeben, wird die aktuelle Version in der Debian 12-Image-Familie verwendet. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

      • MACHINE_TYPE ist ein Maschinentyp, der GPUs unterstützt. Wenn Sie einen N1-Maschinentyp angeben, fügen Sie das Feld guestAccelerators ein, um die Anzahl und den Typ der GPUs anzugeben, die an Ihre VMs angehängt werden sollen.

      • RUN_DURATION durch die Dauer in Sekunden, in der die angeforderten VMs ausgeführt werden sollen, bevor die MIG sie automatisch löscht. Der Wert muss zwischen 600, d. h. 600 Sekunden (10 Minuten) und 604800, also 604.800 Sekunden (7 Tage) liegen.

      MIG erstellen und GPU-VMs hinzufügen gleichzeitig

      Erstellen Sie eine MIG wie in diesem Abschnitt beschrieben. Wenn Sie eine Anfrage zur Größenänderung in der MIG erstellen möchten, dürfen Sie das Autoscaling nicht konfigurieren und Reparaturen müssen deaktiviert sein.

      Console

      1. Rufen Sie die Seite Instanzgruppen auf.

        Zu den Instanzgruppen

      2. Klicken Sie auf Instanzgruppe erstellen. Die Seite Instanzgruppe erstellen wird geöffnet.

      3. Geben Sie im Feld Name einen Namen für die MIG ein.

      4. Bevor Sie eine Instanzvorlage auswählen, müssen Sie die Autoscaling-Konfiguration löschen und Reparaturen so deaktivieren:

        1. So löschen Sie die Autoscaling-Konfiguration:
          1. Klicken Sie im Abschnitt Autoscaling auf die Liste Autoscaling-Modus und dann auf Autoscaling-Konfiguration löschen.
          2. Klicken Sie im Bestätigungsdialogfeld auf Löschen.
        2. Wenn Sie Reparaturen deaktivieren möchten, klicken Sie im Abschnitt Lebenszyklus von VM-Instanzen auf die Liste Standardaktion bei Fehler und wählen Sie dann Keine Aktion aus.
      5. Kehren Sie zum Feld Instanzvorlage zurück. Wählen Sie in der Liste Instanzvorlage die Instanzvorlage aus, die Sie im vorherigen Abschnitt erstellt haben.

      6. Führen Sie einen der folgenden Schritte aus:

        • So erstellen Sie eine Anfrage zur Größenänderung mit der MIG:
          1. Geben Sie im Feld Anzahl der Instanzen die Anzahl der VMs ein, die Sie auf einmal erstellen möchten.
          2. Klicken Sie das Kästchen Anfrage zur Größenanpassung verwenden, um VMs auf einmal zu erstellen an.
          3. Optional: Wenn Sie für die VMs eine andere Laufzeit als in der Instanzvorlage festgelegt angeben möchten, geben Sie im Feld Angeforderte Laufzeit und in den Listen Einheit eine Laufzeit an. Die Dauer muss zwischen einer Stunde und sieben Tagen liegen.
        • Wenn Sie nach dem Erstellen der MIG eine Anfrage zur Größenänderung erstellen möchten, geben Sie im Feld Anzahl der Instanzen die Zahl 0 ein.
      7. Geben Sie im Abschnitt Standort an, ob Sie eine zonale oder eine regionale MIG erstellen möchten:

        1. Wenn Sie eine zonale MIG erstellen möchten, wählen Sie Einzelne Zone aus. Wenn Sie eine regionale MIG erstellen möchten, wählen Sie Mehrere Zonen aus.
        2. Wählen Sie die Region und die Zonen der MIG aus.
        3. Wenn Sie eine regionale MIG erstellen, gehen Sie so vor:
          1. Wählen Sie im Feld Zielverteilungsform die Option Beliebige einzelne Zone aus.
          2. Klicken Sie im angezeigten Dialogfeld auf Instanzredistribution deaktivieren.
      8. Klicken Sie auf Erstellen.

      gcloud

      1. Erstellen Sie mit dem Befehl instance-groups managed create eine zonale MIG:

        gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
           --template=INSTANCE_TEMPLATE_NAME \
           --size=0 \
           --zone=ZONE \
           --default-action-on-vm-failure=do_nothing
        
      2. Erstellen Sie in der MIG mit dem Befehl instance-groups managed resize-requests create eine Anfrage zur Größenanpassung. Geben Sie die gewünschte Anzahl der GPU-VMs und die Dauer an, für die diese VMs ausgeführt werden sollen.

        gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
           --resize-request=RESIZE_REQUEST_NAME \
           --resize-by=COUNT \
           --zone=ZONE
        

      Ersetzen Sie dabei Folgendes:

      • INSTANCE_GROUP_NAME: Name der MIG.
      • INSTANCE_TEMPLATE_NAME: durch den Name der Instanzvorlage für GPU-VMs.
      • ZONE: Eine für Compute Engine verfügbare Zone.
      • RESIZE_REQUEST_NAME durch den Name der Anfrage zur Größenänderung.
      • COUNT: durch die Anzahl der VMs, die alle gleichzeitig in der Gruppe hinzugefügt werden sollen.

      REST

      1. Erstellen Sie eine zonale MIG. Stellen Sie dazu eine POST-Anfrage an die Methode instanceGroupManagers.insert.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
        
        {
         "versions": [
           {
             "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
           }
         ],
         "name": "INSTANCE_GROUP_NAME",
         "targetSize": 0,
         "instanceLifecyclePolicy": {
           "defaultActionOnFailure": "DO_NOTHING"
         }
        }
        
      2. Erstellen Sie in der MIG eine Anfrage zur Größenänderung. Senden Sie dazu eine POST-Anfrage an die Methode instanceGroupManagerResizeRequests.insert. Geben Sie im Anfragetext die Anzahl der GPU-VMs an, die Sie auf einmal erstellen möchten, und die Dauer, für die diese VMs ausgeführt werden sollen.

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
        
        {
         "name": "RESIZE_REQUEST_NAME",
         "resizeBy": COUNT
        }
        

      Ersetzen Sie dabei Folgendes:

      • PROJECT_ID: durch die ID des Projekts, in dem Sie die MIG erstellen möchten.
      • INSTANCE_GROUP_NAME: Name der MIG.
      • INSTANCE_TEMPLATE_NAME: durch den Name der Instanzvorlage für GPU-VMs.
      • ZONE: Eine für Compute Engine verfügbare Zone.
      • RESIZE_REQUEST_NAME durch den Name der Anfrage zur Größenänderung.
      • COUNT: durch die Anzahl der VMs, die alle gleichzeitig in der Gruppe hinzugefügt werden sollen.

      Die von Ihnen erstellte Anfrage zur Größenänderung bleibt im Status ACCEPTED, bis die MIG alle angeforderten GPU-VMs erstellt hat. Nachdem alle GPU-VMs in der Gruppe erstellt wurden, ändert sich der Status der Anfrage in SUCCEEDED.

      Nächste Schritte