Questo documento spiega come creare un gruppo di istanze gestite (MIG) che utilizza VM spot.
Le VM spot sono istanze di macchine virtuali (VM) che puoi ottenere a un prezzo molto scontato. Tuttavia, Compute Engine può arrestare o eliminare le VM spot in qualsiasi momento per recuperare capacità. Utilizza le VM spot per eseguire carichi di lavoro a tolleranza di errore, come job di elaborazione batch o applicazioni stateless, a un costo ridotto.
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.
- Verifica la disponibilità delle risorse nella regione o nella zona in cui vuoi creare VM spot. Il controllo della disponibilità delle risorse contribuisce a ridurre le probabilità di riscontrare errori di disponibilità delle risorse durante la creazione delle VM. Per istruzioni, vedi Visualizzare la disponibilità delle VM spot.
-
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 gli esempi 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 .
Ruoli obbligatori
Per ottenere le autorizzazioni
necessarie per creare gruppi di istanze gestite che utilizzano VM spot,
chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) sul 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 spot. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare gruppi di istanze gestite che utilizzano VM spot sono necessarie le seguenti autorizzazioni:
-
Per creare un template di istanza:
compute.instanceTemplates.createsul progetto -
Per creare un MIG:
compute.instanceGroupManagers.createsul progetto
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Crea un MIG che utilizza VM spot
Per creare un MIG che utilizza VM spot, devi completare i seguenti passaggi:
Crea un modello di istanza configurato per la creazione di VM spot
Crea un gruppo di istanze gestite a livello di regione o di zona
Crea un modello di istanza configurato per la creazione di VM spot
Per creare un template di istanza configurato per la creazione di VM spot, 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 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 tue VM spot, specifica una regione supportata.
Per un template di istanza globale, seleziona Globale.
Nella sezione Configurazione macchina, seleziona una serie di macchine supportata per le VM Spot.
Nella sezione Modello di provisioning, segui questi passaggi:
Nell'elenco Modello di provisioning delle VM, seleziona Spot.
Per specificare se arrestare o eliminare le VM spot in caso di prerilascio, seleziona una delle seguenti opzioni nell'elenco Alla terminazione della VM:
Per arrestare le VM spot, seleziona Arresta.
Per eliminare le VM spot, 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.
Fai clic su Crea.
gcloud
Per creare un template di istanza configurato per la creazione di
VM spot, 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=TERMINATION_ACTION \
--machine-type=MACHINE_TYPE \
--provisioning-model=SPOT
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. In questo modo, viene specificata l'immagine del 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. In base al tipo di macchina che vuoi che utilizzino le VM spot, specifica una regione supportata.TERMINATION_ACTION: indica se Compute Engine interrompe o elimina le VM spot in caso di prerilascio. Devi specificare se arrestare (STOP) o eliminare (DELETE) le VM.MACHINE_TYPE: un tipo di macchina supportato per le VM spot. Se specifichi un tipo di macchina N1, devi includere il flag--acceleratorper definire il numero e il tipo di GPU da collegare alle VM.
REST
Per creare un template di istanza configurato per la creazione di
VM spot, effettua una delle seguenti richieste POST:
Per creare un template di istanza regionale: metodo
regionInstanceTemplates.insertPer creare un template di istanza globale: metodo
instanceTemplates.insert
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"
}
],
"scheduling": {
"instanceTerminationAction": "TERMINATION_ACTION",
"provisioningModel": "SPOT"
}
}
}
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 spot, specifica una regione supportata.INSTANCE_TEMPLATE_NAME: il nome del template di istanza.IMAGE_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. 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 supportato per le VM spot. Se specifichi un tipo di macchina N1, devi includere il campoguestAcceleratorsper definire il numero e il tipo di GPU da collegare alle VM.TERMINATION_ACTION: indica se Compute Engine interrompe o elimina le VM spot in caso di prerilascio. Devi specificare se arrestare (STOP) o eliminare (DELETE) le VM.
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
Per creare un MIG a livello di regione o di zona, seleziona una delle seguenti opzioni:
Console
Nella console Cloud de Confiance , 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 Template di istanza, seleziona il template di istanza creato nella sezione precedente.
Nel campo Numero di istanze, inserisci il numero di VM spot da creare nel gruppo di istanze gestite. Se il tuo workload richiede VM con nomi specifici, inserisci
0per saltare la creazione di VM in questa fase. Dopo aver creato il MIG, aggiungi VM con nomi specifici.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 a livello di regione, seleziona Più zone.
Seleziona la regione e le zone per il gruppo di istanze gestite.
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 \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONEPer creare un MIG a livello di regione, includi il flag
--region:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --region=REGION
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_IDPer un template di istanza globale:
INSTANCE_TEMPLATE_ID
SIZE: il numero di VM spot da creare nel MIG. Se il tuo workload richiede nomi VM specifici, specifica0per ignorare la creazione di VM in questa fase. 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.
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 una richiesta
POSTal metodoinstanceGroupManagers.insert:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "targetSize": SIZE }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", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "targetSize": SIZE }
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_IDPer un template di istanza globale:
INSTANCE_TEMPLATE_ID
SIZE: il numero di VM spot da creare nel MIG. Se il tuo workload richiede nomi VM specifici, specifica0per saltare la creazione di VM in questa fase. Dopo aver creato il MIG, aggiungi VM con nomi specifici.
Dopo aver creato il MIG, puoi visualizzarne i dettagli per esaminarne le proprietà.
Passaggi successivi
Scopri di più sulle best practice per le VM spot.
Scopri di più sulla riparazione delle VM per l'alta affidabilità nei MIG.
Scopri di più sulla scalabilità automatica delle VM nei MIG.
Scopri di più sui MIG stateful.