Crea un MIG che utilizza VM con avvio flessibile

Questo documento spiega come creare un gruppo di istanze gestite (MIG) che utilizza istanze di macchine virtuali (VM) con avvio flessibile. Le VM con avvio flessibile vengono eseguite ininterrottamente per un massimo di sette giorni e ti aiutano a ottenere risorse molto richieste, come le GPU, a un prezzo scontato. Queste funzionalità rendono le VM con avvio flessibile una soluzione conveniente per l'esecuzione di workload di breve durata, come l'ottimizzazione dei modelli e i workload di inferenza batch.

I passaggi descritti in questo documento spiegano come creare un MIG che crea singole VM Flex-start man mano che le risorse diventano disponibili. Pertanto, il MIG potrebbe inizialmente creare solo una parte delle VM richieste e poi aggiungere le VM rimanenti in un secondo momento, in base alla capacità disponibile. Se vuoi creare VM Flex-start tutte insieme in un MIG, consulta invece Informazioni sulle richieste di ridimensionamento del MIG.

Per altri metodi che puoi utilizzare per creare i MIG, vedi Scenari di base per la creazione di un gruppo di istanze gestite.

Prima di iniziare

  • Verifica di disporre di una quota sufficiente per le risorse che vuoi richiedere. Per saperne di più, consulta Quote di allocazione.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso ad API e servizi Cloud de Confiance by S3NS . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Seleziona la scheda relativa a come prevedi di utilizzare i campioni in questa pagina:

    Console

    Quando utilizzi la console Cloud de Confiance per accedere ai servizi Cloud de Confiance by S3NS e alle API, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

      gcloud init
  • Imposta una regione e una zona predefinite.
  • 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.

      Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Cloud de Confiance .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare gruppi di istanze gestite che utilizzano VM Flex-start, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare gruppi di istanze gestite che utilizzano VM Flex-start. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare gruppi di istanze gestite che utilizzano VM Flex-start sono necessarie le seguenti autorizzazioni:

  • Per creare un template di istanza: compute.instanceTemplates.create sul progetto
  • Per creare un MIG: compute.instanceGroupManagers.create sul progetto

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

Crea un MIG che utilizza VM con avvio flessibile

Per creare un MIG che utilizza VM con avvio flessibile, devi completare i seguenti passaggi:

  1. Crea un modello di istanza configurato per la creazione di VM con avvio flessibile

  2. Crea un gruppo di istanze gestite a livello di regione o di zona

Crea un modello di istanza configurato per la creazione di VM con avvio flessibile

Devi creare un modello di istanza configurato per la creazione di VM flessibili, come descritto in questa sezione. Dopo aver creato il modello, lo utilizzi per creare il MIG.

Per creare un template di istanza configurato per la creazione di VM con avvio flessibile, seleziona una delle seguenti opzioni:

Console

  1. Nella console Cloud de Confiance , vai alla pagina Template di istanza.

    Vai a Template di istanza

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

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

  4. Nella sezione Località, seleziona il tipo di modello di istanza che vuoi creare:

    • Per un template di istanza regionale, seleziona Regionale e poi la regione in cui creare il template. In base al tipo di macchina che vuoi che utilizzino le VM con avvio flessibile, specifica una regione supportata.

    • Per un template di istanza globale, seleziona Globale.

  5. Nella sezione Configurazione macchina, seleziona una serie di macchine supportata per le VM con avvio flessibile.

  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 template di istanza, nel campo Inserisci il numero di ore, inserisci il numero di ore per cui vengono eseguite le VM. Il valore deve essere compreso tra un'ora (1) e sette giorni (168). Quando le VM raggiungono la fine della durata di esecuzione, Compute Engine elimina ogni VM singolarmente rispetto al proprio orario di creazione.

  7. (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.

  8. Fai clic su Crea.

gcloud

Per creare un template di istanza configurato per la creazione di VM Flex-start, utilizza il comando gcloud compute instance-templates create.

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

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY \
    --instance-template-region=REGION \
    --instance-termination-action=DELETE \
    --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 template 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, che specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichi debian-12, utilizzi 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. In base al tipo di macchina che vuoi che utilizzino le VM con avvio flessibile, specifica una regione supportata.

  • MACHINE_TYPE: il tipo di macchina GPU o H4D da utilizzare per le VM Flex-start. Se specifichi un tipo di macchina N1, devi includere 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. Quando le VM raggiungono la fine della durata dell'esecuzione, Compute Engine elimina ogni VM singolarmente in base al proprio tempo di creazione. Devi formattare la durata dell'esecuzione 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 la creazione di VM Flex-start, effettua una delle seguenti richieste POST:

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

POST https://compute.googleapis.com/compute/v1/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 template di istanza.

  • REGION: la regione in cui creare il template di istanza. In base al tipo di macchina che vuoi che utilizzino le VM con avvio flessibile, specifica una regione supportata.

  • INSTANCE_TEMPLATE_NAME: il nome del template di istanza.

  • IMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempio debian-cloud. Per saperne di più sui progetti di immagini supportati, vedi 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. Questo valore specifica 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: il tipo di macchina GPU da utilizzare per le VM. Se specifichi un tipo di macchina N1, devi includere il campo guestAccelerators per definire il numero e il tipo di GPU da collegare alle VM.

  • RUN_DURATION: la durata, in secondi, per cui vuoi eseguire le VM richieste. Quando le VM raggiungono la fine della durata dell'esecuzione, Compute Engine elimina ogni VM singolarmente in base al proprio tempo di creazione. La durata della pubblicazione deve essere compresa tra 600, ovvero 600 secondi (10 minuti), e 604800, ovvero 604.800 secondi (sette giorni).

Dopo aver creato il modello di istanza, puoi visualizzare i dettagli del modello per esaminarne le proprietà.

Crea un MIG regionale o a livello di zona

Crea un MIG regionale o a livello di zona come descritto in questa sezione. Non devi configurare la scalabilità automatica e devi disattivare le riparazioni. Se le risorse richieste non sono disponibili, Compute Engine continua a tentare di allocare le risorse finché la richiesta non va a buon fine, riduci il numero di VM nel MIG o elimini il MIG.

Per creare un MIG a livello di regione o di zona, seleziona una delle seguenti opzioni:

Console

  1. Nella console Cloud de Confiance , 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. Nell'elenco Template di istanza, seleziona il template di istanza creato nella sezione precedente.

  5. Nel campo Numero di istanze, inserisci il numero di VM Flex-start da creare nel gruppo di istanze gestite. Se il tuo workload richiede nomi VM specifici, inserisci 0 per non creare VM. Dopo aver creato il MIG, aggiungi VM con nomi specifici.

  6. 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 a livello di regione, seleziona Più zone.

    2. Seleziona la regione e le zone per il 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 target, seleziona Qualsiasi zona singola.

      2. Nella finestra di dialogo visualizzata, fai clic su Disabilita ridistribuzione istanze.

  7. Per eliminare la configurazione della scalabilità automatica, nella sezione Scalabilità automatica, segui questi passaggi:

    1. Fai clic su Configura scalabilità automatica.

    2. Nell'elenco Modalità di scalabilità automatica, fai clic su Elimina configurazione della scalabilità automatica.

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

  8. Per disattivare le riparazioni, nella sezione Azione in caso di errore, nell'elenco Azione predefinita in caso di errore, seleziona Nessuna azione.

  9. Fai clic su Crea.

gcloud

Per creare un MIG, utilizza il comando gcloud compute instance-groups managed create.

A seconda del tipo di MIG che vuoi creare, includi i seguenti flag nel comando:

  • Per creare un MIG a livello di zona, includi il flag --zone:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --default-action-on-vm-failure=do-nothing \
        --size=SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --zone=ZONE
    
  • Per creare un gruppo di istanze gestite a livello di regione, includi i flag --region e --target-distribution-shape:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --default-action-on-vm-failure=do-nothing \
        --size=SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --region=REGION \
        --target-distribution-shape=SHAPE
    

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del MIG.

  • INSTANCE_TEMPLATE_URL: l'URL del template di istanza che hai creato nella sezione precedente. L'URL può contenere l'ID o il nome del template di istanza. Specifica uno dei seguenti valori:

    • Per un template di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID

    • Per un template di istanza globale: INSTANCE_TEMPLATE_ID

  • SIZE: il numero di VM Flex-start da creare nel MIG. Se il tuo workload richiede nomi VM specifici, specifica 0 per non creare VM. Dopo aver creato il MIG, aggiungi VM con nomi specifici.

  • ZONE: la zona in cui creare il MIG a livello di zona. Se utilizzi un template di istanza regionale per creare il gruppo di istanze gestite, devi specificare una zona all'interno della stessa regione del template.

  • REGION: la regione in cui creare il MIG regionale. Se utilizzi un template di istanza regionale per creare il MIG, devi specificare la stessa regione del template.

  • SHAPE: il modo in cui il MIG distribuisce le VM Flex-start tra le zone del MIG regionale. Specifica uno dei seguenti valori:

    • Per creare VM in più zone in base alla disponibilità: ANY

    • Per creare VM in una singola zona in base alla disponibilità: ANY_SINGLE_ZONE

    Per saperne di più, consulta Forma di distribuzione target del MIG a livello di regione.

REST

Per creare un MIG, invia una richiesta POST a uno dei seguenti metodi:

  • Per creare un gruppo di istanze gestite a livello di zona, invia la seguente richiesta al metodo instanceGroupManagers.insert:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
      "name": "INSTANCE_GROUP_NAME",
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ],
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "DO_NOTHING"
      },
      "targetSize": SIZE
    }
    
  • Per creare un gruppo di istanze gestite a livello di regione, invia la seguente richiesta al metodo regionInstanceGroupManagers.insert:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
    
    {
      "name": "INSTANCE_GROUP_NAME",
      "instanceTemplate": "INSTANCE_TEMPLATE_URL",
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "DO_NOTHING"
      },
      "targetSize": SIZE,
      "distributionPolicy": {
        "targetShape": "SHAPE"
      }
    }
    

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui creare il MIG regionale o zonale.

  • ZONE: la zona in cui creare il MIG a livello di zona. Se utilizzi un template di istanza regionale per creare il gruppo di istanze gestite, devi specificare una zona all'interno della stessa regione del template.

  • REGION: la regione in cui creare il MIG regionale. Se utilizzi un template di istanza regionale per creare il MIG, devi specificare la stessa regione del template.

  • INSTANCE_GROUP_NAME: il nome del MIG.

  • INSTANCE_TEMPLATE_URL: l'URL del template di istanza che hai creato nella sezione precedente. L'URL può contenere l'ID o il nome del template di istanza. Specifica uno dei seguenti valori:

    • Per un template di istanza regionale: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID

    • Per un template di istanza globale: INSTANCE_TEMPLATE_ID

  • SIZE: il numero di VM Flex-start da creare nel MIG. Se il tuo workload richiede nomi VM specifici, specifica 0 per non creare VM. Dopo aver creato il MIG, aggiungi VM con nomi specifici.

  • SHAPE: il modo in cui il MIG distribuisce le VM Flex-start tra le zone del MIG regionale. Specifica uno dei seguenti valori:

    • Per creare VM in più zone in base alla disponibilità: ANY

    • Per creare VM in una singola zona in base alla disponibilità: ANY_SINGLE_ZONE

    Per saperne di più, consulta Forma di distribuzione target del MIG a livello di regione.

Passaggi successivi