Crea richieste di ridimensionamento in un gruppo di istanze gestite

Questo documento descrive come creare richieste di ridimensionamento in un gruppo di istanze gestite di istanze di macchine virtuali (VM) con GPU collegate.

Prima di iniziare

  • Esamina come funzionano le richieste di ridimensionamento.
  • Per assicurarti di disporre di una quota GPU sufficiente per le risorse richieste, controlla la quota GPU.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    REST

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

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare richieste di ridimensionamento in un gruppo di istanze gestite, chiedi all'amministratore di concederti il ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1) per il progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare richieste di ridimensionamento in un gruppo di istanze gestite. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per creare richieste di ridimensionamento in un gruppo di istanze gestite sono necessarie le seguenti autorizzazioni:

  • Per creare un modello di istanza: compute.instanceTemplates.create sul progetto
  • Per creare un gruppo di istanze gestite a livello di zona: compute.instanceGroupManagers.create sul progetto
  • Per creare richieste di ridimensionamento in un gruppo di istanze gestite: compute.instanceGroupManagers.update nel progetto

Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

Prepara un gruppo di istanze gestite per le richieste di ridimensionamento

Per creare richieste di ridimensionamento in 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

Se vuoi creare richieste di ridimensionamento in un gruppo di istanze gestite, quest'ultimo deve utilizzare un modello di istanza con le seguenti configurazioni:

Console

Per creare un modello di istanza configurato per creare richieste di ridimensionamento in un gruppo di istanze gestite, segui questi passaggi:

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

    Vai a Modelli di istanza

  2. Fai clic su Crea modello istanza.

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

  4. Nella sezione Posizione, seleziona una delle seguenti opzioni:

    • Per creare un modello di istanza globale, seleziona Globale (impostazione predefinita).

    • Per creare un modello di istanza regionale, seleziona A livello di regione, poi seleziona la regione in cui vuoi creare il modello di istanza.

  5. 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. (Facoltativo) Se il tuo modello GPU supporta le workstation virtuali NVIDIA RTX (vWS) per i carichi di lavoro della grafica 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. (Facoltativo) Per modificare il tipo o l'immagine del disco di avvio predefinito, nella sezione Disco di avvio, fai clic su Cambia. Poi segui le istruzioni per cambiare il disco di avvio.

  7. Espandi la sezione Opzioni avanzate ed esegui le seguenti operazioni:

    1. Espandi la sezione Gestione.

    2. Nell'elenco Prenotazioni, seleziona Non utilizzare.

  8. Fai clic su Crea.

gcloud

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

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

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

Ad esempio, utilizza il comando seguente:

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

Sostituisci quanto segue:

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

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

  • IMAGE o IMAGE_FAMILY: specifica una delle seguenti opzioni:

    • IMAGE: una versione specifica dell'immagine del sistema operativo, ad esempio debian-10-buster-v20200309.

    • IMAGE_FAMILY: una famiglia di immagini. Specifica l'immagine del sistema operativo più recente non deprecata. Ad esempio, se specifichi debian-10, viene utilizzata l'ultima versione nella famiglia di immagini Debian 10. Per ulteriori informazioni sull'uso delle famiglie di immagini, consulta 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 flag --accelerator per specificare il numero e il tipo di GPU da collegare alle VM.

REST

Per creare un modello di istanza configurato per creare richieste di ridimensionamento in un gruppo di istanze gestite, effettua una richiesta POST al metodo instanceTemplates.insert. Nel corpo della richiesta, segui questi passaggi:

  • Imposta il campo scheduling.onHostMaintenance su TERMINATE.

  • Imposta il campo reservationAffinity.consumeReservationType su NO_RESERVATION.

Ad esempio, effettua una richiesta POST nel seguente modo:

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/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-IP",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE"
    }
  }
}

Sostituisci quanto segue:

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

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

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

  • IMAGE o IMAGE_FAMILY: specifica una delle seguenti opzioni:

    • IMAGE: una versione specifica dell'immagine del sistema operativo, ad esempio debian-10-buster-v20200309.

    • IMAGE_FAMILY: una famiglia di immagini. Specifica l'immagine del sistema operativo più recente non deprecata. Ad esempio, se specifichi debian-10, viene utilizzata l'ultima versione nella famiglia di immagini Debian 10. Per ulteriori informazioni sull'uso delle famiglie di immagini, consulta 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 nel corpo della richiesta per specificare il numero e il tipo di GPU da collegare alle VM.

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

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 indicato di seguito oppure aggiorna un gruppo di istanze gestite. Inoltre, devi svolgere le seguenti operazioni per preparare il gruppo di istanze gestite per le richieste di ridimensionamento:

Console

Per creare un gruppo di istanze gestite a livello di zona configurato per la creazione di richieste di ridimensionamento:

  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 Name (Nome), inserisci un nome per il gruppo di istanze gestite.

  4. Nell'elenco Modello di istanza, seleziona il modello di istanza che hai creato nella sezione precedente. Se selezioni un modello di istanza a livello di regione, l'elenco Regione viene impostato sulla regione del modello di istanza.

  5. Nella sezione Posizione, procedi nel seguente modo:

    1. Seleziona Zona singola (impostazione predefinita).

    2. Seleziona la regione e la zona del gruppo di istanze gestite.

  6. 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 di scalabilità automatica.

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

  7. Per disattivare le riparazioni, nella sezione Ciclo di vita delle istanze VM, fai clic sull'elenco Azione predefinita in caso di errore, quindi seleziona Nessuna azione.

  8. Esegui una di queste operazioni:

    • A questo punto, per creare una richiesta di ridimensionamento:

      1. Nel campo Numero di istanze, inserisci il numero di VM che vuoi creare contemporaneamente.

        Il campo del numero di istanze nella pagina Crea gruppo di istanze.

      2. Seleziona la casella di controllo Utilizza richiesta di ridimensionamento per creare tutte le VM contemporaneamente.

      3. Nel campo Durata di esecuzione richiesta e nell'elenco Unità, specifica la durata di esecuzione delle VM. La durata deve essere compresa tra 1 ora e 7 giorni.

    • Altrimenti, nel campo Numero di istanze, inserisci 0. In seguito puoi aggiungere VM al gruppo creando richieste di ridimensionamento.

  9. Fai clic su Crea.

gcloud

Per creare un gruppo di istanze gestite a livello di zona configurato per la creazione di richieste di ridimensionamento, utilizza il comando instance-groups managed create con il flag --default-action-on-vm-failure impostato su do_nothing.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template=INSTANCE_TEMPLATE_NAME \
    --size=0 \
    --zone=ZONE \
    --default-action-on-vm-failure=do_nothing

Sostituisci quanto segue:

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

  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza creato nella sezione precedente.

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

REST

Per creare un gruppo di istanze gestite a livello di zona configurato per la creazione di richieste di ridimensionamento, effettua una richiesta POST al metodo instanceGroupManagers.insert. Nel corpo della richiesta, includi il campo defaultActionOnFailure impostato su DO_NOTHING.

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"
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova il modello di istanza che hai creato nella sezione precedente.

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

  • INSTANCE_TEMPLATE_NAME: il nome del modello di istanza creato nella sezione precedente.

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

Creazione di una richiesta di ridimensionamento in un gruppo di istanze gestite

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

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

Console

Per creare una richiesta di ridimensionamento in un gruppo di istanze gestite:

  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 contemporaneamente al gruppo di istanze gestite.

  7. Nei campi Durata di esecuzione richiesta e Unità, specifica la durata di esecuzione delle VM richieste. La durata deve essere compresa tra 1 ora e 7 giorni.

  8. Fai clic su Crea.

gcloud

Per creare una richiesta di ridimensionamento in un gruppo di istanze gestite, 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 \
    --requested-run-duration=RUN_DURATION \
    --zone=ZONE

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome di un gruppo di istanze gestite a livello di zona esistente configurato per creare 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 contemporaneamente al gruppo di istanze gestite.

  • RUN_DURATION: la durata dell'esecuzione delle VM richieste. Il valore deve essere formattato con il numero di giorni, ore, minuti o secondi seguiti rispettivamente da d, h, m e s. Ad esempio, specifica 30m per 30 minuti o 1d2h3m4s per 1 giorno, 2 ore, 3 minuti e 4 secondi. Il valore deve essere compreso tra 10 minuti e 7 giorni.

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

REST

Per creare una richiesta di ridimensionamento in un gruppo di istanze gestite, invia una richiesta POST al metodo beta.instanceGroupManagerResizeRequests.insert.

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"
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova il gruppo di istanze gestite specificato.

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

  • INSTANCE_GROUP_NAME: il nome di un gruppo di istanze gestite a livello di zona esistente configurato per creare 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 tutte contemporaneamente al gruppo di istanze gestite.

  • RUN_DURATION: la durata, in secondi, della tua esecuzione delle VM richieste. Il valore deve essere compreso tra 600, ovvero 600 secondi (10 minuti), e 604800, ovvero 604.800 secondi (7 giorni).

Passaggi successivi