Questo documento descrive come creare richieste di ridimensionamento in un gruppo di istanze gestite (MIG) di macchine virtuali (VM) con GPU collegate.
La creazione di richieste di ridimensionamento in un gruppo di istanze gestite ti consente di ottenere risorse molto richieste, come le GPU, e di ottimizzare i costi creando contemporaneamente il numero esatto di VM.
Prima di iniziare
- Esamina come funzionano le richieste di ridimensionamento.
- 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 è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
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 richieste di ridimensionamento in un gruppo di istanze gestite:
compute.instanceGroupManagers.update
nel progetto Interrompi le VM durante gli eventi di manutenzione dell'host.
Non utilizzare reservations.
Nella console Google Cloud, vai alla pagina Modelli di istanza.
Fai clic su Crea modello istanza.
Nel campo Nome, inserisci un nome per il modello di istanza.
Nella sezione Località, seleziona una delle seguenti opzioni:
Per creare un modello di istanza globale, seleziona Globale, se non è già selezionato.
Per creare un modello di istanza regionale, seleziona Regionale e poi la regione in cui creare il modello di istanza.
Nella sezione Configurazione macchina:
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.
(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).
Nella sezione Tipo di macchina, seleziona un tipo di macchina.
(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.
Espandi la sezione Opzioni avanzate e segui questi passaggi:
Espandi la sezione Gestione.
Nell'elenco Prenotazioni, seleziona Non utilizzare.
Fai clic su Crea.
Il flag
--maintenance-policy
impostato suTERMINATE
.Il flag
--reservation-affinity
impostato sunone
.INSTANCE_TEMPLATE_NAME
: il nome del modello di istanza da creare.IMAGE_PROJECT
: il progetto immagine 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. Viene specificata l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichidebian-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.Se vuoi utilizzare una versione specifica dell'immagine del sistema operativo, ad esempio
debian-12-buster-v20240701
, sostituisci il flag--image-family
con il flag--image
.REGION
: la regione in cui creare il modello 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.Per creare un modello di istanza regionale: metodo
regionInstanceTemplates.insert
Per creare un modello di istanza globale: metodo
instanceTemplates.insert
Includi il campo
scheduling.onHostMaintenance
e impostalo suTERMINATE
.Includi il campo
reservationAffinity.consumeReservationType
e impostalo suNO_RESERVATION
.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 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 del sistema operativo, ad esempio
debian-12-bookworm-v20240617
.Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. Specifica l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichifamily/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 che supporta le GPU. Se specifichi un tipo di macchina N1, includi il campoguestAccelerators
nel corpo della richiesta per specificare il numero e il tipo di GPU da collegare alle VM.Imposta il tipo di aggiornamento del MIG su opportunistico (predefinito).
Se hai configurato la scalabilità automatica nel gruppo di istanze gestite, elimina la configurazione della scalabilità automatica.
Se utilizzi un gruppo di istanze gestite a livello di regione, imposta la forma di distribuzione di destinazione su
ANY_SINGLE_ZONE
.Nella console Google Cloud, 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.
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 di istanza.
Nella sezione Località, specifica se vuoi creare un gruppo di istanze gestite a livello di zona o di regione come segue:
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.
Seleziona la Regione e le Zone del gruppo di istanze gestite.
Se stai creando un gruppo di istanze gestite a livello di regione, procedi nel seguente modo:
Nel campo Forma di distribuzione di destinazione, seleziona Qualsiasi zona singola. Puoi selezionare questa opzione solo dopo aver eliminato la configurazione dell'autoscaling nei passaggi successivi.
Dopo aver selezionato l'opzione Qualsiasi zona singola, nella finestra di dialogo visualizzata fai clic su Disattiva la ridistribuzione delle istanze.
Elimina la configurazione della scalabilità automatica nel seguente modo:
Nella sezione Scalabilità automatica, fai clic sull'elenco Modalità di scalabilità automatica, quindi su Elimina configurazione di scalabilità automatica.
Nella finestra di dialogo di conferma, fai clic su Elimina.
Disattiva le riparazioni nel seguente modo:
Nella sezione Ciclo di vita dell'istanza VM, fai clic sull'elenco Azione predefinita in caso di errore.
Seleziona Nessuna azione.
Esegui una di queste operazioni:
A questo punto, per creare una richiesta di ridimensionamento:
Nel campo Numero di istanze, inserisci il numero di VM che vuoi creare contemporaneamente.
Seleziona la casella di controllo Utilizza la richiesta di ridimensionamento per creare tutte le VM contemporaneamente.
Nel campo Durata esecuzione richiesta e nell'elenco Unità, specifica la durata di esecuzione delle VM. La durata deve essere compresa tra 1 ora e 7 giorni.
In caso contrario, inserisci
0
nel campo Numero di istanze. In seguito, puoi aggiungere VM al gruppo creando richieste di ridimensionamento.
Fai clic su Crea.
Per creare un gruppo di istanze gestite zonale, esegui il seguente comando:
gcloud compute instance-groups managed create INSTANCE_GROUP_URL \ --template=INSTANCE_TEMPLATE_NAME \ --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
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.Per creare un gruppo di istanze gestite a livello di zona, invia una richiesta
POST
utilizzando il metodoinstanceGroupManagers.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 metodoregionInstanceGroupManagers.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" } }
PROJECT_ID
: l'ID del progetto in cui si trova 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.Nella console Google Cloud, vai alla pagina Gruppi di istanze.
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.
Nella riga Richieste di ridimensionamento, fai clic su
Modifica richieste di ridimensionamento.Fai clic su
Nuova richiesta di ridimensionamento.Viene visualizzato il riquadro Nuove richieste di ridimensionamento.
Nel campo Nome, inserisci il nome della richiesta di ridimensionamento.
Nel campo Numero di istanze aggiuntive necessarie, inserisci il numero di VM da aggiungere al gruppo di istanze gestite con scalabilità automatica contemporaneamente.
Nei campi Durata esecuzione richiesta e Unità, specifica la durata di esecuzione delle VM richieste. La durata deve essere compresa tra 1 ora e 7 giorni.
Fai clic su Crea.
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 \ --requested-run-duration=RUN_DURATION \ --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 \ --requested-run-duration=RUN_DURATION \ --region=REGION
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 dad
,h
,m
es
. Ad esempio, specifica30m
per 30 minuti o1d2h3m4s
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.REGION
: la regione in cui si trova il gruppo di istanze gestite.Per creare una richiesta di ridimensionamento in un gruppo di istanze gestite a livello di zona, invia una richiesta
POST
utilizzando il metodoinstanceGroupManagerResizeRequests.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 metodobeta.regionInstanceGroupManagerResizeRequests.insert
.POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
PROJECT_ID
: l'ID del progetto in cui si trova il MIG specificato.ZONE
: la zona in cui si trova il gruppo di istanze gestite.REGION
: la regione in cui si trova 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 tra600
, ovvero 600 secondi (10 minuti), e604800
, ovvero 604.800 secondi (7 giorni).Scopri come visualizzare, annullare o eliminare le richieste di ridimensionamento in un gruppo di istanze gestite.
Scopri come visualizzare informazioni su MIG e VM gestite.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
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
) nel progetto. Per saperne di più 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 in un gruppo di istanze gestite. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per creare richieste di ridimensionamento in un gruppo di istanze gestite sono necessarie le seguenti autorizzazioni:
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 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, il gruppo deve utilizzare un modello di istanza con le seguenti configurazioni:
Per creare un modello di istanza configurato per creare richieste di ridimensionamento in un gruppo di istanze gestite, seleziona una delle seguenti opzioni:
Console
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:Ad esempio, utilizza il seguente comando per creare un modello di istanza regionale. Se vuoi creare un modello 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 \ --machine-type=MACHINE_TYPE \ --maintenance-policy=TERMINATE \ --reservation-affinity=none
Sostituisci quanto segue:
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:
Ad esempio, per creare un modello di istanza regionale, effettua una richiesta
POST
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": { "onHostMaintenance": "TERMINATE" } } }
Sostituisci quanto segue:
Per saperne di più sulla creazione di un modello di istanza, consulta Creare modelli di istanze.
Creare o aggiornare 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 aggiornarne uno. 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
gcloud
Utilizza il comando
instance-groups managed create
con il flag--default-action-on-vm-failure
impostato sudo_nothing
. Se stai creando un gruppo di istanze gestite a livello di regione, devi includere anche il flag--target-distribution-shape
impostato suany-single-zone
e il flag--instance-redistribution-type
impostato sunone
.Sostituisci quanto segue:
REST
Sostituisci quanto segue:
Creare una richiesta di ridimensionamento in un gruppo di istanze gestite
Prima di creare richieste di ridimensionamento, assicurati di aver preparato il MIG come descritto nella sezione precedente.
Dopo aver creato una richiesta di ridimensionamento, la richiesta viene accettata e 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:
Console
gcloud
Sostituisci quanto segue:
REST
Nel corpo della richiesta, includi quanto segue:
{ "name": "RESIZE_REQUEST_NAME", "resizeBy": COUNT, "requestedRunDuration": { "seconds": "RUN_DURATION" } }
Sostituisci quanto segue:
Dopo aver creato una richiesta di ridimensionamento, puoi visualizzarne lo stato o risolvere i problemi visualizzando i dettagli della richiesta.
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-12-22 UTC.
-