Creare richieste di ridimensionamento in un gruppo di istanze gestite


Questo documento descrive come creare richieste di ridimensionamento in un gruppo di istanze gestite (MIG) di macchine virtuali (VM) con GPU collegate. Per scoprire di più sulle richieste di ridimensionamento, consulta Informazioni sulle richieste di ridimensionamento in un gruppo di istanze gestite.

La creazione di una richiesta di ridimensionamento del MIG ti consente di ottenere risorse molto richieste, come le GPU, e di ottimizzare i costi creando contemporaneamente il numero esatto di VM. Per creare una richiesta di ridimensionamento del gruppo di istanze gestite che possa utilizzare le funzionalità e i servizi disponibili da Cluster Director, consulta Creare un gruppo di istanze gestite e una richiesta di ridimensionamento nella documentazione dell'ipercomputer AI.

Prima di iniziare

  • Per assicurarti di disporre di una quota GPU sufficiente per le risorse che stai richiedendo, controlla la quota GPU.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API. Google Cloud 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 dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite 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 ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare richieste di ridimensionamento di MIG, chiedi all'amministratore di concederti il ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare richieste di ridimensionamento dei MIG. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per creare richieste di ridimensionamento di MIG sono necessarie le seguenti autorizzazioni:

  • Per creare un modello di istanza: compute.instanceTemplates.create nel progetto
  • Per creare un gruppo di istanze gestite a livello di zona: compute.instanceGroupManagers.create nel progetto
  • Per creare una richiesta di ridimensionamento del gruppo di istanze gestite: compute.instanceGroupManagers.update nel progetto

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Preparare un gruppo di istanze gestite per le richieste di ridimensionamento

Per creare richieste di ridimensionamento di un gruppo di istanze gestite, devi configurare un modello di istanza e il gruppo di istanze gestite come descritto nelle sezioni seguenti.

Crea un modello di istanza

Per creare un modello di istanza configurato per creare richieste di ridimensionamento del gruppo di istanze gestite, specifica quanto segue nel modello:

Per creare un modello di istanza configurato per creare richieste di ridimensionamento del gruppo di istanze gestite, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Modelli di istanza.

    Vai a Modelli di istanza

  2. Fai clic su Crea modello istanza. Viene visualizzata la pagina Crea un modello di istanza.

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

  4. Nella sezione Località, seleziona una delle seguenti opzioni:

    • Per creare un modello di istanza regionale, seleziona Regionale (consigliato) e poi la regione in cui creare il modello.

    • Per creare un modello di istanza globale, seleziona Globale.

  5. Nella sezione Configurazione macchina:

    1. Fai clic sulla scheda GPU.

    2. Nell'elenco Tipo di GPU, seleziona un tipo di GPU. Puoi selezionare solo i tipi NVIDIA H200 141 GB e versioni successive se utilizzi il modello di istanza nei gruppi di istanze gestite zonali.

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

    4. (Facoltativo) Se il modello di GPU supporta le workstation virtuali (vWS) NVIDIA RTX per i carichi di lavoro grafici e prevedi di eseguire carichi di lavoro ad alta intensità di grafica, seleziona Abilita workstation virtuale (NVIDIA GRID).

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

  6. 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).

  7. (Facoltativo) Per modificare il tipo o l'immagine del disco di avvio predefinito, fai clic su Cambia nella sezione Disco di avvio. Poi, segui le istruzioni per cambiare il disco di avvio.

  8. Fai clic su Crea.

gcloud

Per creare un modello di istanza configurato per creare richieste di ridimensionamento del gruppo di istanze gestite, utilizza il comando beta instance-templates create con i seguenti flag:

  • Il flag --maintenance-policy impostato su TERMINATE.

  • Il flag --instance-termination-action impostato su DELETE.

  • Il flag --max-run-duration.

  • Il flag --provisioning-model impostato su FLEX_START.

  • Il flag --reservation-affinity impostato su none.

Il seguente comando crea un modello di istanze regionale. Per creare un modello di istanza globale, utilizza lo stesso comando senza il --instance-template-region flag.

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 da creare.

  • IMAGE_PROJECT: il progetto immagine 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. Viene specificata l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichi debian-12, viene utilizzata la versione più recente della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta Best practice per le famiglie di immagini.

  • REGION: la regione in cui creare il modello di istanza.

  • MACHINE_TYPE: un tipo di macchina GPU. Assicurati quanto segue:

    • Per i gruppi di istanze gestite a livello di zona puoi specificare solo un tipo di macchina A4 o A3 Ultra.

    • Se specifichi un tipo di macchina N1, includi il flag --accelerator per definire il numero e il tipo di GPU da collegare alle VM.

  • RUN_DURATION: la durata per cui vuoi eseguire le VM richieste. Devi formattare il valore come numero di giorni, ore, minuti o secondi seguito rispettivamente da d, h, m e 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 sette giorni.

REST

Per creare un modello di istanza configurato per creare richieste di ridimensionamento in un gruppi di istanze gestite, invia una richiesta POST a uno dei seguenti metodi:

Nel corpo della richiesta, includi i seguenti campi:

  • Il campo scheduling.onHostMaintenance impostato su TERMINATE.

  • Il campo scheduling.instanceTerminationAction impostato su DELETE.

  • Il campo scheduling.maxRunDuration.

  • Il campo scheduling.provisioningModel impostato su FLEX_START.

  • Il campo reservationAffinity.consumeReservationType impostato su NO_RESERVATION.

Ad esempio, per creare un modello di istanza regionale, effettua una richiesta POST come segue:

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 creare il modello di istanza.

  • REGION: la regione in cui creare il modello di istanza.

  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza da creare.

  • IMAGE_PROJECT: il progetto immagine 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 del sistema operativo, ad esempio debian-12-bookworm-v20240617.

    • Una famiglia di immagini, che deve essere formattata come family/IMAGE_FAMILY. Questo specifica l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichi family/debian-12, viene utilizzata la versione più recente 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 GPU. Assicurati quanto segue:

    • Per i gruppi di istanze gestite a livello di zona puoi specificare solo un tipo di macchina A4 o A3 Ultra.

    • Se specifichi un tipo di macchina N1, includi il campo guestAccelerators nel corpo della richiesta per definire il numero e il tipo di GPU da collegare alle tue VM.

  • RUN_DURATION: la durata, in secondi, per cui vuoi eseguire le VM richieste. Il valore deve essere compreso tra 600, ovvero 600 secondi (10 minuti), e 604800, ovvero 604.800 secondi (sette giorni).

Per ulteriori informazioni sulla creazione di un modello di istanza, consulta Creare modelli di istanze.

Crea o aggiorna un gruppo di istanze gestite

Dopo aver creato il modello di istanza come descritto nella sezione precedente, utilizzalo per creare un gruppo di istanze gestite come segue o per aggiornare un gruppo di istanze gestite. Inoltre, per preparare il gruppo di istanze gestite per le richieste di ridimensionamento, devi eseguire le seguenti operazioni:

Per creare un gruppo di istanze gestite compatibile con le richieste di ridimensionamento, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , 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 gruppo di istanze gestite.

  4. Prima di selezionare un modello di istanza, devi eliminare la configurazione della scalabilità automatica e disattivare le riparazioni come segue:

    1. Per eliminare la configurazione della scalabilità automatica:

      1. Nella sezione Scalabilità automatica, fai clic sull'elenco Modalità di scalabilità automatica, quindi su Elimina configurazione di scalabilità automatica.

      2. Nella finestra di dialogo di conferma, fai clic su Elimina.

    2. Per disattivare le riparazioni, nella sezione Ciclo di vita dell'istanza VM, fai clic sull'elenco Azione predefinita in caso di errore e seleziona Nessuna azione.

  5. Torna al campo Modello di istanza. Nell'elenco Modello di istanza, seleziona il modello di istanza creato nella sezione precedente. Se selezioni un modello di istanza regionale, l'elenco Regione viene impostato sulla regione del modello.

  6. Esegui una di queste operazioni:

    • Per creare una richiesta di ridimensionamento quando crei il gruppo di istanze gestite, segui questi passaggi:

      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 nel campo Durata esecuzione richiesta e negli elenchi Unità. La durata deve essere compresa tra un'ora e sette giorni.

    • Per creare una richiesta di ridimensionamento dopo aver creato il gruppo di istanze gestite, inserisci 0 nel campo Numero di istanze.

  7. Nella sezione Località, specifica se vuoi creare un gruppo di istanze gestite a livello di zona o di regione come segue:

    1. Per creare un gruppo di istanze gestite 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 gruppo di istanze gestite.

    3. Se stai creando un gruppo di istanze gestite a livello di regione, procedi nel seguente modo:

      1. Nel campo Forma di distribuzione di destinazione, seleziona Qualsiasi zona singola.

      2. Nella finestra di dialogo visualizzata, fai clic su Disattiva la ridistribuzione delle istanze.

  8. Fai clic su Crea.

gcloud

Utilizza il comando instance-groups managed create con il flag --default-action-on-vm-failure impostato su do_nothing. Se crei un gruppo di istanze gestite a livello di regione, devi includere anche il flag --target-distribution-shape impostato su any-single-zone e il flag --instance-redistribution-type impostato su none.

  • Per creare un gruppo di istanze gestite zonale, esegui il seguente comando:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=0 \
        --zone=ZONE \
        --default-action-on-vm-failure=do_nothing
    
  • Per creare un MIG a livello di regione, esegui il seguente comando:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=0 \
        --region=REGION \
        --target-distribution-shape=any-single-zone \
        --instance-redistribution-type=none \
        --default-action-on-vm-failure=do_nothing
    

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite da creare.

  • INSTANCE_TEMPLATE_URL: l'URL parziale del modello di istanza che hai creato nella sezione precedente. Se vuoi utilizzare un modello di istanza regionale per creare il gruppo di istanze gestite, puoi creare il gruppo di istanze gestite solo all'interno della regione del modello. Specifica uno tra i seguenti valori:

    • Per un modello di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME

    • Per un modello di istanza globale: INSTANCE_TEMPLATE_NAME

  • ZONE: la zona in cui creare il gruppo di istanze gestite.

  • REGION: la regione in cui creare il gruppo di istanze gestite.

REST

  • Per creare un gruppo di istanze gestite a livello di zona, invia una richiesta POST utilizzando il metodo instanceGroupManagers.insert come segue:

    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"
      }
    }
    
  • Per creare un gruppo di istanze gestite a livello di regione, invia una richiesta POST utilizzando il metodo regionInstanceGroupManagers.insert come segue:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
    
    {
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ],
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": 0,
      "distributionPolicy": {
        "targetShape": "ANY_SINGLE_ZONE"
      },
      "updatePolicy": {
        "instanceRedistributionType": "NONE"
      },
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "DO_NOTHING"
      }
    }
    

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui esiste il modello di istanza creato nella sezione precedente.

  • INSTANCE_TEMPLATE_URL: l'URL parziale del modello di istanza che hai creato nella sezione precedente. Se vuoi utilizzare un modello di istanza regionale per creare il gruppo di istanze gestite, puoi creare il gruppo di istanze gestite solo all'interno della regione del modello. Specifica uno tra i seguenti valori:

    • Per un modello di istanza regionale: regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME

    • Per un modello di istanza globale: global/instanceTemplates/INSTANCE_TEMPLATE_NAME

  • ZONE: la zona in cui creare il gruppo di istanze gestite.

  • REGION: la regione in cui creare il gruppo di istanze gestite.

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite da creare.

Creare una richiesta di ridimensionamento in un gruppo di istanze gestite

Prima di creare richieste di ridimensionamento del gruppo di istanze gestite, assicurati di aver preparato il gruppo di istanze gestite come descritto nella sezione precedente.

Dopo aver creato una richiesta di ridimensionamento e quando tutte le risorse richieste diventano disponibili, il gruppo di istanze gestite crea contemporaneamente il numero richiesto di VM. Le VM vengono eseguite fino a quando il gruppo di istanze gestite non le elimina al termine della durata di esecuzione specificata o fino a quando non le elimini.

Per creare una richiesta di ridimensionamento in un gruppo di istanze gestite, seleziona una delle seguenti opzioni. Per aggiungere VM con nomi specifici al gruppo di istanze gestite tramite una richiesta di ridimensionamento, utilizza gcloud CLI o l'API REST.

Console

  1. Nella console Google Cloud , vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Nella colonna Nome, fai clic sul nome del gruppo di istanze gestite in cui creare la richiesta di ridimensionamento.

    Si apre la pagina di panoramica del gruppo di istanze gestite.

  3. Nella riga Richieste di ridimensionamento, fai clic su Modifica richieste di ridimensionamento.

  4. Fai clic su Nuova richiesta di ridimensionamento.

    Viene visualizzato il riquadro Nuove richieste di ridimensionamento.

  5. Nel campo Nome, inserisci il nome della richiesta di ridimensionamento.

  6. Nel campo Numero di istanze aggiuntive necessarie, inserisci il numero di VM da aggiungere al gruppo di istanze gestite contemporaneamente.

  7. (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 esecuzione richiesta e Unità. La durata deve essere compresa tra un'ora e sette giorni.

  8. Fai clic su Crea.

gcloud

  • Per creare una richiesta di ridimensionamento in un gruppo di istanze gestite a livello di zona, utilizza il comando instance-groups managed resize-requests create.

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --resize-by=COUNT \
        --zone=ZONE
    
  • Per creare una richiesta di ridimensionamento in un gruppo di istanze gestite a livello di regione, utilizza il comando beta instance-groups managed resize-requests create.

    gcloud beta compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --resize-by=COUNT \
        --region=REGION
    

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del MIG configurato per la creazione di richieste di ridimensionamento al suo interno.

  • RESIZE_REQUEST_NAME: il nome della richiesta di ridimensionamento, che deve essere univoco all'interno del gruppo di istanze gestite specificato. In caso contrario, la creazione della richiesta di ridimensionamento non va a buon fine.

  • COUNT: il numero di VM da aggiungere al MIG contemporaneamente.

  • RUN_DURATION: la durata per cui vuoi eseguire le VM richieste. Il valore deve essere formattato come numero di giorni, ore, minuti o secondi seguito rispettivamente da d, h, m e 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 sette giorni.

  • ZONE: la zona in cui esiste il gruppo di istanze gestite.

  • REGION: la regione in cui esiste il gruppo di istanze gestite.

Se vuoi, puoi procedere nel seguente modo:

REST

  • Per creare una richiesta di ridimensionamento in un gruppo di istanze gestite a livello di zona, invia una richiesta POST utilizzando il metodo instanceGroupManagerResizeRequests.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
  • Per creare una richiesta di ridimensionamento in un gruppo di istanze gestite a livello di regione, invia una richiesta POST utilizzando il metodo beta.regionInstanceGroupManagerResizeRequests.insert.

Nel corpo della richiesta, includi quanto segue:

{
  "name": "RESIZE_REQUEST_NAME",
  "resizeBy": COUNT,
  "requestedRunDuration": {
    "seconds": "RUN_DURATION"
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui esiste il MIG specificato.

  • ZONE: la zona in cui esiste il gruppo di istanze gestite.

  • REGION: la regione in cui esiste il gruppo di istanze gestite.

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite configurato per la creazione di richieste di ridimensionamento.

  • RESIZE_REQUEST_NAME: il nome della richiesta di ridimensionamento, che deve essere univoco all'interno del gruppo di istanze gestite specificato. In caso contrario, la creazione della richiesta di ridimensionamento non va a buon fine.

  • COUNT: il numero di VM da aggiungere contemporaneamente al MIG.

  • RUN_DURATION: la durata, in secondi, per cui vuoi eseguire le VM richieste. Il valore deve essere compreso tra 600, ovvero 600 secondi (10 minuti), e 604800, ovvero 604.800 secondi (sette giorni).

Se vuoi, puoi procedere nel seguente modo:

Passaggi successivi