Questo documento descrive come utilizzare la modalità in blocco in un MIG per creare contemporaneamente tutte le istanze di macchine virtuali (VM) necessarie. La creazione di istanze contemporaneamente garantisce che il MIG crei istanze solo quando tutte le risorse necessarie sono disponibili.
Per scoprire come funziona la modalità in blocco, consulta Informazioni sulla creazione in blocco di istanze in un MIG.
Crea un template di istanza
La modalità in blocco nei MIG è supportata solo con i template di istanza che specificano un modello di provisioning con prenotazione o con avvio flessibile. Per utilizzare la modalità in blocco, crea un template di istanza utilizzando uno di questi modelli di provisioning come descritto nelle sezioni seguenti. Per ulteriori informazioni sui modelli di provisioning, consulta Modelli di provisioning delle istanze Compute Engine.
Utilizza il modello di provisioning con prenotazione
Per creare un modello di istanza, seleziona una delle seguenti opzioni:
Console
Nella console Cloud de Confiance , 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 Località, seleziona una delle seguenti opzioni:
Per creare un template di istanza regionale, seleziona Regionale (consigliato) e poi la regione in cui creare il template.
Per creare un template di istanza globale, seleziona Globale.
Nella sezione Configurazione macchina, specifica un tipo di macchina.
Nella sezione Modello di provisioning, completa i seguenti passaggi:
Espandi Impostazioni avanzate del modello di provisioning delle VM.
Nell'elenco Informazioni sulla terminazione delle VM, seleziona Elimina.
(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.
Espandi la sezione Opzioni avanzate e segui questi passaggi:
Espandi la sezione Gestione.
Nella sezione Prenotazioni, seleziona Scegli una prenotazione, quindi fai clic su Scegli prenotazione. Nel riquadro visualizzato, segui le istruzioni per selezionare la prenotazione che vuoi utilizzare.
Fai clic su Crea.
gcloud
Per creare un template di istanza, utilizza il comando instance-templates create con le seguenti impostazioni dei flag:
Il flag
--instance-termination-actionimpostato suDELETE.Il flag
--maintenance-policyimpostato suTERMINATE.Il flag
--provisioning-modelimpostato suRESERVATION_BOUND.Il flag
--reservation-affinityimpostato suspecific.Il flag
--reservation.
Il seguente comando di esempio 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-termination-action=DELETE \
--instance-template-region=REGION \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--provisioning-model=RESERVATION_BOUND \
--reservation-affinity=specific \
--reservation=RESERVATION_URL
Sostituisci quanto segue:
INSTANCE_TEMPLATE_NAME: il nome del template di istanza da creareIMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempiodebian-cloud. Per saperne di più sui progetti di immagini supportati, vedi Immagini pubbliche.IMAGE_FAMILY: una famiglia di immagini. Specifica una famiglia di immagini per utilizzare 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 ulteriori informazioni sull'utilizzo delle famiglie di immagini, consulta le rispettive best practice.REGION: la regione in cui creare il template di istanza.MACHINE_TYPE: il tipo di macchina specificato nella prenotazione che vuoi utilizzare.RESERVATION_URL: l'URL della prenotazione creata automaticamente per una prenotazione futura in modalità calendario che vuoi utilizzare. Specifica uno dei seguenti valori:Se la prenotazione creata automaticamente esiste nel tuo progetto:
RESERVATION_NAME.Se la prenotazione creata automaticamente esiste in un progetto diverso:
projects/PROJECT_ID/reservations/RESERVATION_NAME.
REST
Per creare un template di istanza, invia una richiesta POST a uno dei seguenti metodi:
Per creare un template di istanza regionale: metodo
regionInstanceTemplates.insertPer creare un template di istanza globale: metodo
instanceTemplates.insert
Nel corpo della richiesta, includi i seguenti campi:
Il campo
reservationAffinity.consumeReservationTypeimpostato suSPECIFIC_RESERVATION.Il campo
reservationAffinity.keyimpostato sucompute.googleapis.com/reservation-name.Il campo
reservationAffinity.valuesimpostato sull'URL della prenotazione creata automaticamente.Il campo
scheduling.instanceTerminationActionimpostato suDELETE.Il campo
scheduling.onHostMaintenanceimpostato suTERMINATE.Il campo
scheduling.provisioningModelimpostato suRESERVATION_BOUND.
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": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_URL"
]
},
"scheduling": {
"instanceTerminationAction": "DELETE",
"onHostMaintenance": "TERMINATE",
"provisioningModel": "RESERVATION_BOUND"
}
}
}
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 istanzaINSTANCE_TEMPLATE_NAME: il nome del template di istanza da creareIMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempiodebian-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. Specifica una famiglia di immagini per utilizzare 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: il tipo di macchina specificato nella prenotazione che vuoi utilizzare.RESERVATION_URL: l'URL della prenotazione creata automaticamente per una prenotazione futura in modalità calendario che vuoi utilizzare. Specifica uno dei seguenti valori:Se la prenotazione creata automaticamente esiste nel tuo progetto:
RESERVATION_NAMESe la prenotazione creata automaticamente si trova in un progetto diverso:
projects/PROJECT_ID/reservations/RESERVATION_NAME
Per saperne di più sulla creazione di un template di istanza, consulta Crea template di istanza.
Utilizza il modello di provisioning con avvio flessibile
Per creare un modello di istanza, seleziona una delle seguenti opzioni:
Console
Nella console Cloud de Confiance , 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 Località, seleziona una delle seguenti opzioni:
Per creare un template di istanza regionale, seleziona Regionale (consigliato) e poi la regione in cui creare il template.
Per creare un template di istanza globale, seleziona Globale.
Nella sezione Configurazione macchina, specifica un tipo di macchina.
Nella sezione Modello di provisioning, completa i seguenti passaggi:
Nel campo Modello di provisioning delle VM, seleziona Avvio flessibile.
Espandi Impostazioni avanzate del modello di provisioning delle VM.
Seleziona la casella di controllo Imposta un limite di tempo per la VM.
Per impostare una durata di esecuzione per le VM create utilizzando il template di istanza, nel campo Inserisci il numero di ore, inserisci il numero di ore. Il valore deve essere compreso tra 36 secondi (
0.01) 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
Per creare un template di istanza, utilizza il comando instance-templates create con le seguenti impostazioni dei flag:
Il flag
--instance-termination-actionimpostato suDELETE.Il flag
--maintenance-policyimpostato suTERMINATE.Il flag
--max-run-duration.Il flag
--provisioning-modelimpostato suFLEX_START.Il flag
--reservation-affinityimpostato sunone.
Il seguente comando di esempio 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 creareIMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempiodebian-cloud. Per saperne di più sui progetti di immagini supportati, vedi Immagini pubbliche.IMAGE_FAMILY: una famiglia di immagini. Specifica una famiglia di immagini per utilizzare 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 ulteriori informazioni sull'utilizzo delle famiglie di immagini, consulta le rispettive best practice.REGION: la regione in cui creare il template di istanza.MACHINE_TYPE: il tipo di macchina da utilizzare per le VM con avvio flessibile. Se specifichi un tipo di macchina N1, devi includere il flag--acceleratorper 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 dad,h,mes. 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
Per creare un template di istanza, invia una richiesta POST a uno dei seguenti metodi:
Per creare un template di istanza regionale: metodo
regionInstanceTemplates.insertPer creare un template di istanza globale: metodo
instanceTemplates.insert
Nel corpo della richiesta, includi i seguenti campi:
Il campo
reservationAffinity.consumeReservationTypeimpostato suNO_RESERVATION.Il campo
scheduling.instanceTerminationActionimpostato suDELETE.Il campo
scheduling.maxRunDuration.Il campo
scheduling.onHostMaintenanceimpostato suTERMINATE.Il campo
scheduling.provisioningModelimpostato suFLEX_START.
La seguente richiesta di esempio crea un template di istanza regionale:
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 istanzaINSTANCE_TEMPLATE_NAME: il nome del template di istanza da creareIMAGE_PROJECT: il progetto immagine che contiene l'immagine, ad esempiodebian-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. Specifica una famiglia di immagini per utilizzare 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: il tipo di macchina da utilizzare per le VM. Se specifichi un tipo di macchina N1, devi includere il campoguestAcceleratorsper 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. Il valore deve essere compreso tra600, ovvero 600 secondi (10 minuti), e604800, ovvero 604.800 secondi (sette giorni).
Per saperne di più sulla creazione di un template di istanza, consulta Crea template di istanza.
Crea un MIG che utilizza la modalità in blocco
Per abilitare la creazione collettiva di istanze in un MIG, imposta il campo targetSizePolicy.mode su BULK nella configurazione del MIG. Quando utilizzi questa modalità in blocco, il MIG attende la piena disponibilità delle risorse e poi crea le istanze contemporaneamente.
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 modello di istanza, devi:
- Se utilizzi il modello di provisioning con avvio flessibile, devi disattivare
le riparazioni nel seguente modo:
- 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.
- Nella 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.
- Se utilizzi il modello di provisioning con avvio flessibile, devi disattivare
le riparazioni nel seguente modo:
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 la creazione collettiva abilitata, utilizza il comando gcloud compute instance-groups managed create con il flag --target-size-policy-mode impostato su bulk.
Se utilizzi il modello di provisioning con avvio flessibile, devi disattivare le riparazioni
nel MIG includendo il flag --default-action-on-vm-failure=do-nothing
nei seguenti comandi.
- Per creare un gruppo di istanze gestite a livello di zona, esegui questo comando:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--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 \
--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 istanze 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 gruppo di istanze gestite crea le istanze.LIST_OF_ZONES: un elenco separato da virgole delle zone in cui il MIG regionale crea istanze. 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 utilizzi 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" }, "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" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }
Sostituisci quanto segue:
PROJECT_ID:l'ID progetto.ZONE:la zona in cui il gruppo di istanze gestite crea le istanze.REGION:la regione in cui il MIG crea le istanze.INSTANCE_GROUP_NAME:il nome del MIG.SIZE:il numero di istanze 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:
Aggiungere o eliminare istanze
In un MIG che utilizza la modalità in blocco, puoi aggiungere o rimuovere istanze aumentando o diminuendo manualmente le dimensioni di destinazione del MIG.
Aggiungi istanze: quando aumenti le dimensioni di destinazione da zero, il MIG aggiunge istanze nello stesso modo in cui crea un MIG. Puoi anche creare istanze con nomi specifici utilizzando il metodo
createInstancesquando non è presente alcuna istanza nel MIG. Per creare istanze con nomi specifici, consulta Creazione di istanze con nomi specifici nei MIG.Elimina istanze: quando riduci le dimensioni target a zero, il MIG elimina tutte le istanze esistenti nel gruppo e annulla qualsiasi operazione di creazione in corso. Puoi rimuovere le istanze diminuendo le dimensioni target a
0. Per diminuire a una dimensione diversa da zero, il MIG non deve avere un'operazione collettiva sulle istanze in corso (bulkInstanceOperation.inProgressdeve esserefalse).
Per aggiungere o rimuovere istanze da un MIG modificando le dimensioni target, consulta Impostazione manuale delle dimensioni di un MIG.