Questo documento spiega come creare un gruppo di istanze gestite (MIG) per aggiungere istanze di macchine virtuali (VM) GPU contemporaneamente.
Il MIG utilizza la modalità in blocco della policy di dimensione target per aggiungere le VM tutte insieme. Utilizza anche il modello di provisioning con avvio flessibile per migliorare l'ottenibilità delle risorse. Per saperne di più sul modello di provisioning con avvio flessibile, consulta Informazioni sui modelli di provisioning.
Un altro metodo per aggiungere contemporaneamente VM GPU in un MIG consiste nel creare richieste di ridimensionamento. Per determinare se la modalità in blocco o la richiesta di ridimensionamento è più adatta al tuo workload, consulta il confronto tra la modalità in blocco e la richiesta di ridimensionamento.
Se il tuo workload non richiede che il MIG crei le VM contemporaneamente, ma vuoi comunque migliorare l'ottenimento delle risorse, utilizza il modello di provisioning con avvio flessibile come descritto in Creare un MIG con VM con avvio flessibile.
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 della quota, leggi VM GPU e quote di allocazione preemptible.
-
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
-
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 .
Limitazioni
Si applicano le seguenti limitazioni:
Crea un MIG e aggiungi contemporaneamente VM GPU
Per creare più VM GPU contemporaneamente, segui questi passaggi:
Crea un modello di istanza, necessario per creare un MIG. Il MIG utilizza quindi questo modello per creare ogni VM nel gruppo. Nel modello, specifica le configurazioni per il modello di provisioning avvio flessibile.
Per saperne di più sui modelli di istanza, consulta Informazioni sui modelli di istanza.
Crea un MIG per il provisioning collettivo delle VM. Durante la creazione del MIG, abilita la funzionalità di provisioning collettivo nel MIG impostando la modalità della policy di dimensione target su
BULK. In modalitàBULK, il MIG tenta di creare tutte le VM contemporaneamente per raggiungere le dimensioni target che hai impostato.
Crea un template di istanza
Crea un template di istanza che specifichi una serie di macchine GPU. Quindi, utilizza il modello per creare un MIG.
Console
Vai alla pagina Template di istanza.
Fai clic su Crea template di istanza. Viene visualizzata la pagina Crea un template di istanza.
Nel campo Nome, inserisci un nome per il template di istanza.
Nella sezione Configurazione macchina, segui questi passaggi:
Fai clic sulla scheda GPU.
Nell'elenco Tipo di GPU, seleziona il tipo di GPU.
Nell'elenco Numero di GPU, seleziona il numero di GPU.
Nella sezione Tipo di macchina, seleziona un tipo di macchina.
Nella sezione Modello di provisioning, segui questi passaggi:
Nell'elenco Modello di provisioning delle VM, seleziona Avvio flessibile.
Per impostare una durata di esecuzione per le VM create tramite il modello di istanza, nel campo Inserisci il numero di ore, inserisci il numero di ore. Il valore deve essere compreso tra un'ora (
1) e sette giorni (168).
(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.
Fai clic su Crea.
gcloud
Crea un modello di istanza utilizzando il
comando instance-templates create:
gcloud 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 template di istanza.IMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempiodebian-cloud. Per saperne di più sui progetti di immagini supportati, consulta Immagini pubbliche.IMAGE_FAMILY: una famiglia di immagini. In questo modo, viene specificata l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichidebian-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.REGION: la regione in cui creare il template di istanza.MACHINE_TYPE: un tipo di macchina GPU. Se specifichi un tipo di macchina N1, includi il flag--acceleratorper specificare 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 dad,h,mos. Ad esempio, specifica30mper 30 minuti o1d2h3m4sper un giorno, due ore, tre minuti e quattro secondi. Il valore deve essere compreso tra 10 minuti e sette giorni.
REST
Crea un template di istanza effettuando una richiesta POST al
metodo instanceTemplates.insert:
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 vuoi creare il template di istanza.REGION: la regione in cui creare il template di istanza.INSTANCE_TEMPLATE_NAME: il nome del template di istanza.IMAGE_PROJECT: il progetto di immagini che contiene l'immagine, ad esempiodebian-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 specifichifamily/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 GPU. Se specifichi un tipo di macchina N1, includi il campoguestAcceleratorsper 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 tra600, ovvero 600 secondi (10 minuti), e604800, ovvero 604.800 secondi (sette 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 gruppo di istanze gestite come descritto in questa sezione. Quando abiliti il provisioning collettivo nel MIG, devi disattivare le riparazioni.
Console
Vai alla pagina Gruppi di istanze.
Fai clic su Crea gruppo di istanze. Viene visualizzata la pagina Crea gruppo di istanze.
Nel campo Nome, inserisci un nome per il gruppo di istanze gestite.
Prima di selezionare un template di istanza, devi disattivare le riparazioni e impostare la località come segue:
- Per disattivare le riparazioni:
- Nella sezione Ciclo di vita di un'istanza VM, deseleziona la casella di controllo Consenti la riparazione delle VM in una zona alternativa.
- Nell'elenco Azione predefinita in caso di errore, seleziona Nessuna azione.
- Per impostare la sezione Località, segui questi passaggi:
- Per creare un gruppo di istanze gestite a livello di zona, seleziona Zona singola.
- Per creare un MIG a livello di regione, seleziona Più zone. In Forma di distribuzione target, seleziona Qualsiasi zona singola. Nella finestra di dialogo visualizzata, seleziona Disabilita ridistribuzione istanze.
- Per disattivare le riparazioni:
Torna al campo Template di istanza. Nell'elenco Modello di istanza, seleziona il modello di istanza creato nella sezione precedente.
Nel campo Numero di istanze, specifica il numero di istanze che vuoi creare in una volta.
Seleziona la casella di controllo Ottieni tutte le VM insieme con la policy di dimensione target collettiva.
Fai clic su Crea.
gcloud
Per creare un MIG con funzionalità di provisioning collettivo, utilizza il comando instance-groups managed create.
Per creare un gruppo di istanze gestite a livello di zona, esegui questo comando:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONE \Per creare un gruppo di istanze gestite a livello di regione, esegui questo comando:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --target-size-policy-mode=bulk \ --template=INSTANCE_TEMPLATE_URL \ --zones=LIST_OF_ZONES \
Sostituisci quanto segue:
INSTANCE_GROUP_NAME: il nome del MIG.SIZE: il numero di VM nel MIG.INSTANCE_TEMPLATE_URL: l'URL del modello di istanza che vuoi utilizzare per creare istanze nel MIG. L'URL può contenere l'ID o il nome del modello 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
- Per un template di istanza regionale:
ZONE: la zona in cui il MIG crea le VM.LIST_OF_ZONES: un elenco separato da virgole di zone in cui il MIG regionale crea le VM. Ad esempio,us-central1-a, us-central1-b, us-central1-c.
REST
Per creare un gruppo di istanze gestite con la creazione collettiva abilitata, invia una richiesta POST come
segue. Nel corpo della richiesta, imposta il campo targetSizePolicy.mode su
bulk.
Se il template di istanza che utilizzi specifica il modello di provisioning con avvio flessibile, devi disattivare le riparazioni nel MIG includendo il campo "instanceLifecyclePolicy": {"defaultActionOnFailure": "DO_NOTHING"} nelle seguenti richieste.
Per creare un gruppo di istanze gestite a livello di zona, invia una richiesta
POSTal metodoinstanceGroupManagers.insert.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "targetSizePolicy": { "mode": "bulk" }, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }Per creare un MIG a livello di regione, invia una richiesta
POSTal metodoregionInstanceGroupManagers.insert.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "targetSizePolicy": { "mode": "bulk" }, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }
Sostituisci quanto segue:
PROJECT_ID:l'ID progetto.ZONE:la zona in cui il MIG crea le VM.REGION:la regione in cui il MIG crea le VM.INSTANCE_GROUP_NAME:il nome del MIG.SIZE:il numero di VM nel MIG.INSTANCE_TEMPLATE_URL: l'URL del modello di istanza che vuoi utilizzare per creare istanze nel MIG. L'URL può contenere l'ID o il nome del modello 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
- Per un template di istanza regionale: