Crea un MIG con VM GPU


Questo documento descrive come creare un gruppo di istanze gestite (MIG) con istanze di macchine virtuali (VM) con GPU collegate. Descrive come aggiungere VM con GPU tutte in una volta in un MIG a livello di zona utilizzando richieste di ridimensionamento e il modello di provisioning con avvio flessibile. Se vuoi creare una richiesta di ridimensionamento del MIG per utilizzare una prenotazione, consulta invece quanto segue:

Utilizza una richiesta di ridimensionamento del MIG con il modello di provisioning con avvio flessibile per aumentare le probabilità di ottenere VM GPU. Nella richiesta, devi specificare il numero di VM con GPU. Dynamic Workload Scheduler (DWS), il meccanismo di pianificazione sottostante, pianifica le richieste di ridimensionamento create in Compute Engine in base alle durate richieste e alla disponibilità delle risorse. Quando le risorse diventano disponibili, il MIG crea le VM.

Se il job termina prima della durata richiesta, puoi eliminare le VM create. In caso contrario, il MIG elimina le VM al termine della durata dell'esecuzione.

Puoi anche leggere altri scenari di base per la creazione di un MIG.

Prima di iniziare

  • Per assicurarti di disporre di una quota GPU sufficiente per le risorse che stai richiedendo, controlla la quota GPU.
  • Per comprendere il consumo di quota, leggi VM GPU e quote di allocazione preemptible.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso ai Google Cloud servizi e alle API. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    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

        Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

          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.

        Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Limitazioni

Esamina le limitazioni per la creazione di una richiesta di ridimensionamento del MIG.

Crea un MIG e aggiungi contemporaneamente VM GPU

Per creare un MIG e aggiungere contemporaneamente VM GPU nel gruppo, procedi nel seguente modo:

  1. Crea un modello di istanza, necessario per creare un gruppo di istanze gestite. Il MIG crea ogni VM nel gruppo in base al modello di istanza. Nel modello, specifica la configurazione per le VM GPU e le configurazioni aggiuntive necessarie per utilizzare le richieste di ridimensionamento.

    Per saperne di più sui modelli di istanza, consulta Informazioni sui modelli di istanza.

  2. Crea un MIG e una richiesta di ridimensionamento per aggiungere contemporaneamente VM GPU.

Crea un modello di istanza

Crea un modello di istanza come descritto in questa sezione, quindi utilizza il modello per creare un gruppo di istanze gestite.

Console

  1. Vai alla pagina Template di istanza.

    Vai a Template di istanza

  2. Fai clic su Crea modello istanza. Si apre la pagina Crea un modello di istanza.

  3. Nel campo Nome, inserisci un nome per il template di istanza.

  4. Nella sezione Configurazione macchina, segui questi passaggi:

    1. Fai clic sulla scheda GPU.

    2. Nell'elenco Tipo di GPU, seleziona il tipo di GPU.

    3. Nell'elenco Numero di GPU, seleziona il numero di GPU.

    4. Nella sezione Tipo di macchina, seleziona un tipo di macchina.

  5. Nella sezione Modello di provisioning, segui questi passaggi:

    1. Nell'elenco Modello di provisioning delle VM, seleziona Avvio flessibile.

    2. Per impostare una durata di esecuzione per le VM create tramite il modello di istanza, inserisci il numero di ore nel campo Inserisci il numero di ore. Il valore deve essere compreso tra un'ora (1) e sette giorni (168).

  6. (Facoltativo) Per modificare il tipo o l'immagine del disco di avvio predefinito, fai clic su Modifica nella sezione Disco di avvio. Dopodiché, segui le istruzioni per modificare il disco di avvio.

  7. Fai clic su Crea.

gcloud

Crea un modello di istanza utilizzando il comando beta instance-templates create:

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

Sostituisci quanto segue:

  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.

  • IMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE_FAMILY: una famiglia di immagini. Specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi debian-12, viene utilizzata l'ultima versione della famiglia di immagini Debian 12. Per ulteriori informazioni sull'utilizzo delle famiglie di immagini, consulta le rispettive best practice.

  • REGION: la regione in cui creare il template di istanza

  • MACHINE_TYPE: un tipo di macchina che supporta le GPU. Se specifichi un tipo di macchina N1, includi il flag --accelerator per specificare il numero e il tipo di GPU da collegare alle VM.

  • RUN_DURATION: la durata per cui vuoi che vengano eseguite le VM richieste. Devi formattare il valore come numero di giorni, ore, minuti o secondi seguiti rispettivamente da d, h, m o s. Ad esempio, specifica 30m per 30 minuti o 1d2h3m4s per un giorno, due ore, tre minuti e quattro secondi. Il valore deve essere compreso tra 10 minuti e 7 giorni.

REST

Crea un modello di istanza inviando una richiesta POST al metodo 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"
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui vuoi creare il modello di istanza.

  • REGION: la regione in cui creare il template di istanza

  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza.

  • IMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.

  • IMAGE: specifica una delle seguenti opzioni:

    • Una versione specifica dell'immagine sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. In questo modo viene specificata l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi family/debian-12, viene utilizzata l'ultima versione della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.

  • MACHINE_TYPE: un tipo di macchina che supporta le GPU. Se specifichi un tipo di macchina N1, includi il campo guestAccelerators per specificare il numero e il tipo di GPU da collegare alle VM.

  • RUN_DURATION: la durata, in secondi, per cui vuoi che le VM richieste vengano eseguite prima che il MIG le elimini automaticamente. Il valore deve essere compreso tra 600, ovvero 600 secondi (10 minuti), e 604800, ovvero 604.800 secondi (7 giorni).

Dopo aver creato il modello di istanza, puoi visualizzarlo per vedere il suo ID e rivedere le proprietà dell'istanza.

Crea un MIG e aggiungi contemporaneamente VM GPU

Crea un MIG come descritto in questa sezione. Per creare una richiesta di ridimensionamento nel MIG, non devi configurare la scalabilità automatica e devi disattivare le riparazioni.

Console

  1. Vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Fai clic su Crea gruppo di istanze. Viene visualizzata la pagina Crea gruppo di istanze.

  3. Nel campo Nome, inserisci un nome per il MIG.

  4. Prima di selezionare un modello di istanza, devi eliminare la configurazione di scalabilità automatica e disattivare le riparazioni nel seguente modo:

    1. Per eliminare la configurazione della scalabilità automatica:
      1. Nella sezione Scalabilità automatica, fai clic sull'elenco Modalità di scalabilità automatica e poi su Elimina configurazione della scalabilità automatica.
      2. Nella finestra di dialogo di conferma, fai clic su Elimina.
    2. Per disattivare le riparazioni, nella sezione Ciclo di vita di un'istanza VM, fai clic sull'elenco Azione predefinita in caso di errore, quindi seleziona Nessuna azione.
  5. Torna al campo Modello di istanza. Nell'elenco Modello di istanza, seleziona il modello di istanza creato nella sezione precedente.

  6. Esegui una di queste operazioni:

    • Per creare una richiesta di ridimensionamento con il MIG, procedi nel seguente modo:
      1. Nel campo Numero di istanze, inserisci il numero di VM che vuoi creare contemporaneamente.
      2. Seleziona la casella di controllo Utilizza la richiesta di ridimensionamento per creare tutte le VM contemporaneamente.
      3. (Facoltativo) Per specificare una durata di esecuzione diversa per le VM rispetto a quella impostata nel modello di istanza, specifica una durata nei campi Durata di esecuzione richiesta e negli elenchi Unità. La durata deve essere compresa tra 1 ora e 7 giorni.
    • Per creare una richiesta di ridimensionamento dopo aver creato il MIG, nel campo Numero di istanze, inserisci 0.
  7. Nella sezione Località, specifica se vuoi creare un MIG zonale o regionale nel seguente modo:

    1. Per creare un MIG a livello di zona, seleziona Zona singola. In alternativa, per creare un gruppo di istanze gestite regionale, seleziona Più zone.
    2. Seleziona la Regione e le Zone del MIG.
    3. Se stai creando un MIG regionale, procedi nel seguente modo:
      1. Nel campo Forma di distribuzione target, seleziona Qualsiasi zona singola.
      2. Nella finestra di dialogo visualizzata, fai clic su Disabilita ridistribuzione istanze.
  8. Fai clic su Crea.

gcloud

  1. Crea un MIG a livello di zona utilizzando il comando instance-groups managed create:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
       --template=INSTANCE_TEMPLATE_URL \
       --size=0 \
       --zone=ZONE \
       --default-action-on-vm-failure=do_nothing
    
  2. Nel MIG, crea una richiesta di ridimensionamento utilizzando il comando instance-groups managed resize-requests create. Specifica il numero di VM con GPU che vuoi e la durata per cui vuoi eseguirle.

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

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del MIG.
  • INSTANCE_TEMPLATE_URL: l'URL del modello di istanza che vuoi utilizzare per creare le VM nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:
    • Per un modello di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Per un modello di istanza globale: INSTANCE_TEMPLATE_ID
  • ZONE: una delle zone disponibili per Compute Engine.
  • RESIZE_REQUEST_NAME: il nome della richiesta di ridimensionamento.
  • COUNT: il numero di VM da aggiungere contemporaneamente al gruppo.

REST

  1. Crea un MIG a livello di zona inviando una richiesta POST al metodo instanceGroupManagers.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
     "versions": [
       {
         "instanceTemplate": "INSTANCE_TEMPLATE_URL"
       }
     ],
     "name": "INSTANCE_GROUP_NAME",
     "targetSize": 0,
     "instanceLifecyclePolicy": {
       "defaultActionOnFailure": "DO_NOTHING"
     }
    }
    
  2. Nel MIG, crea una richiesta di ridimensionamento inviando una richiesta POST al metodo instanceGroupManagerResizeRequests.insert. Nel corpo della richiesta, specifica il numero di VM con GPU che vuoi creare contemporaneamente e la durata di esecuzione di queste VM.

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui vuoi creare il MIG.
  • INSTANCE_GROUP_NAME: il nome del MIG.
  • INSTANCE_TEMPLATE_URL: l'URL del modello di istanza che vuoi utilizzare per creare le VM nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:
    • Per un modello di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • Per un modello di istanza globale: INSTANCE_TEMPLATE_ID
  • ZONE: una delle zone disponibili per Compute Engine.
  • RESIZE_REQUEST_NAME: il nome della richiesta di ridimensionamento.
  • COUNT: il numero di VM da aggiungere contemporaneamente al gruppo.

La richiesta di ridimensionamento che crei rimane nello stato ACCEPTED finché il MIG non crea tutte le VM GPU richieste. Dopo la creazione di tutte le VM GPU nel gruppo, lo stato della richiesta cambia in SUCCEEDED.

Passaggi successivi