MIG mit GPU-VMs erstellen


In diesem Dokument wird beschrieben, wie Sie eine verwaltete Instanzgruppe (Managed Instance Group, MIG) mit GPU-VMs erstellen. Dabei wird beschrieben, wie Sie mithilfe von Anfragen zur Größenänderung GPU-VMs auf einmal der Gruppe hinzufügen.

Mit einer Anfrage zur Größenänderung wird die Erreichbarkeit von GPU-VMs in einer MIG verbessert. Geben Sie in der Anfrage die Anzahl der GPU-VMs und eine Dauer an, für die Sie diese VMs ausführen möchten. Ein zugrunde liegender Planermechanismus verarbeitet alle Anfragen zur Größenänderung in Compute Engine und plant die Anfragen effektiv anhand der Dauer und der Verfügbarkeit von VMs. Sobald die Ressourcen verfügbar sind, erstellt die MIG die VMs automatisch.

Wenn Ihr Job, der auf diesen VMs ausgeführt wird, vor der angeforderten Dauer abgeschlossen wird, können Sie diese VMs löschen. Andernfalls löscht die MIG die VMs automatisch nach Ablauf der Dauer.

Weitere Informationen zu anderen grundlegenden Szenarien zum Erstellen einer MIG

Hinweise

  • Prüfen Sie Ihr GPU-Kontingent, damit Ihr Kontingent für die angeforderten Ressourcen ausreicht.
  • 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 wie folgt bei Compute Engine authentifizieren.

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Google Cloud Console auf Google Cloud-Dienste und -APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Legen Sie eine Standardregion und -zone fest.

    REST

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

      Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init

Beschränkungen

Lesen Sie die Einschränkungen zum Erstellen einer Anfrage zur Größenänderung in 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 Informationen zu Instanzvorlagen.

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

Instanzvorlage erstellen

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

Console

  1. Rufen Sie die Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

  2. Klicken Sie auf Instanzvorlage erstellen.

  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 Menü Maschinentyp einen Maschinentyp aus.
  5. Maximieren Sie den Abschnitt Erweiterte Optionen und gehen Sie dann so vor:

    1. Maximieren Sie den Bereich Verwaltung.
    2. Wählen Sie im Menü Reservierungen die Option Nicht verwenden aus.
  6. Klicken Sie auf Erstellen.

gcloud

Erstellen Sie mithilfe des Befehls instance-templates create eine Instanzvorlage.

Mit dem folgenden Befehl wird eine globale Instanzvorlage erstellt.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

Ersetzen Sie Folgendes:

  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.
  • 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.

REST

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

Mit der folgenden Anfrage wird eine globale Instanzvorlage erstellt.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "mode": "READ_WRITE",
        "type": "PERSISTENT",
        "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/family/debian-10"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-IP",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE"
    }
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: durch die ID des Projekts, in dem Sie die MIG erstellen möchten.
  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.
  • 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.

MIG erstellen und GPU-VMs hinzufügen gleichzeitig

Erstellen Sie eine MIG mit deaktivierten Reparaturen, wie in diesem Abschnitt beschrieben. Wenn Sie eine Anfrage zur Größenänderung in der MIG verwenden möchten, dürfen Sie Autoscaling in der Gruppe nicht konfigurieren.

gcloud

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

    gcloud beta 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 eine Anfrage zur Größenänderung mit dem Betabefehl instance-groups managed resize-requests create. Geben Sie die Anzahl der gewünschten GPU-VMs und die Dauer an, für die Sie diese VMs ausführen möchten.

    gcloud beta compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
       --resize-request=RESIZE_REQUEST_NAME \
       --resize-by=COUNT \
       --requested-run-duration=RUN_DURATION\
       --zone=ZONE
    

Ersetzen Sie 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.
  • RUN_DURATION: durch die Dauer, für die die angeforderten VMs ausgeführt werden sollen. Der Wert muss als Anzahl der Tage, 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 1 Tag, 2 Stunden, 3 Minuten und 4 Sekunden an. Der Wert muss zwischen 10 Minuten und 7 Tagen liegen.

REST

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

    POST https://compute.googleapis.com/compute/beta/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. Stellen Sie dazu eine POST-Anfrage an die Betamethode instanceGroupManagerResizeRequests.insert. Geben Sie im Anfragetext die Anzahl der GPU-VMs an, die Sie gleichzeitig erstellen möchten, sowie die Dauer, für die diese VMs ausgeführt werden sollen.

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

Ersetzen Sie 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.
  • 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.

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