Questo documento descrive come creare un gruppo di istanze gestite in cui le VM siano distribuite in più zone all'interno di una regione. La distribuzione del carico dell'applicazione in più zone protegge il tuo carico di lavoro da errori a livello di zona. In caso di errore a livello di zona, l'applicazione può continuare a gestire le istanze in esecuzione nelle restanti zone disponibili della stessa regione.
Questo tipo di gruppo di istanze gestite è noto anche come gruppo di istanze gestite a livello di regione. Per ulteriori informazioni, consulta la pagina Informazioni sui gruppi di istanze gestite a livello di regione.
Puoi anche leggere altri scenari di base per la creazione di un gruppo di istanze gestite.
Prima di iniziare
- Crea un modello di istanza, necessario per creare un gruppo di istanze gestite.
-
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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
I passaggi rimanenti vengono visualizzati nella console Google Cloud.
-
Fai clic su
Crea gruppo di istanze per creare un nuovo gruppo di istanze. -
Seleziona una delle opzioni per i nuovi gruppi di istanze gestite:
- Stateless (predefinito)
- Stateful
- Assegna un nome e, facoltativamente, una descrizione al gruppo di istanze.
- Scegli un modello di istanza per il gruppo di istanze o creane uno nuovo.
- In Numero di istanze o in Scalabilità automatica, specifica il numero di istanze per questo gruppo. Ricorda di eseguire il provisioning di un numero sufficiente di VM per supportare la tua applicazione in caso di errore della zona.
-
In
Località , seleziona Più zone. - Scegli una regione e seleziona le zone che vuoi utilizzare. Se hai scelto un modello di istanza regionale, viene selezionata automaticamente l'opzione Regione in base alla regione del modello.
- In Forma di distribuzione di destinazione, seleziona Uniforme. Se vuoi selezionare una forma diversa, consulta l'articolo Imposta una forma di distribuzione di destinazione per le VM in un gruppo di istanze gestite a livello di regione.
- Se vuoi disabilitare la ridistribuzione proattiva delle istanze, in Ridistribuzione delle istanze, deseleziona la casella di controllo Consenti ridistribuzione istanze.
- Continua con il resto della procedura di creazione del gruppo di istanze gestite.
- Per creare il gruppo di istanze gestite, fai clic su
Crea . PROJECT_ID
: l'ID progetto per questa richiesta.REGION
: la regione del gruppo.BASE_INSTANCE_NAME
: (facoltativo) il nome dell'istanza per ogni istanza VM creata all'interno del gruppo. Ad esempio, un nome istanza di baseexample-instance
crea istanze con nomi comeexample-instance-[RANDOM_STRING]
, dove[RANDOM_STRING]
viene generato dal server.INSTANCE_TEMPLATE_NAME
: il modello di istanza da utilizzare. Per un modello di istanza regionale, devi specificare l'URL completo o parziale del modello. Un esempio di URL completo èhttps://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
e un URL parziale èprojects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
.INSTANCE_GROUP_NAME
: il nome del gruppo di istanze gestite.TARGET_SIZE
: il numero target di VM per il gruppo.Imposta una forma di distribuzione di destinazione per le VM nelle varie zone
- Disattivare e riattivare la ridistribuzione proattiva delle VM
- Riequilibrare manualmente un gruppo di istanze gestite a livello di regione
- Configura la riparazione automatica basata su applicazione, che verifica periodicamente che l'applicazione risponda come previsto su ogni VM del gruppo di istanze gestite e ricrea automaticamente le VM non rispondenti.
- Attiva la scalabilità automatica per aggiungere o eliminare automaticamente le VM dal gruppo di istanze gestite in base all'aumento o alla riduzione del carico.
- Scopri come applicare una nuova configurazione a tutte le VM o a un sottoinsieme di VM in un gruppo di istanze gestite impostando e applicando un nuovo modello di istanza, una configurazione per tutte le istanze o una configurazione per istanza.
- Conserva i dischi, i metadati e gli indirizzi IP durante eventi invasivi come la ricreazione, la riparazione automatica e gli aggiornamenti di VM aggiungendo una configurazione stateful.
- Scopri come utilizzare le istanze gestite, ad esempio per eliminare, abbandonare e ricreare le VM in un gruppo di istanze gestite.
- Visualizza le informazioni sui gruppi di istanze gestite e sulle relative VM.
- Simulare un'interruzione del servizio in una zona per un gruppo di istanze gestite a livello di regione
- Scopri come aggiungere un frontend del bilanciatore del carico HTTP(S) esterno al tuo gruppo di istanze. Per informazioni su altri tipi di bilanciatori del carico, consulta la Panoramica del bilanciamento del carico.
Terraform
Per utilizzare gli esempi di Terraform in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
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 saperne di più, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Limitazioni
Per visualizzare l'elenco completo delle limitazioni dei gruppi di istanze gestite, che varia in base alla configurazione utilizzata, consulta Limitazioni dei gruppi di istanze gestite.
Crea un gruppo di istanze gestite con VM in più zone all'interno di una regione
Utilizza la console Google Cloud, la gcloud CLI, Terraform o REST.
Console
gcloud
Tutti i gruppi di istanze gestite richiedono un modello di istanza. Se non ne hai uno, crea un modello di istanza. Ad esempio, il seguente comando crea un modello di istanza di base con proprietà predefinite:
gcloud compute instance-templates create example-template
Quindi, utilizza il comando
instance-groups managed create
con il flag--region
. Ad esempio, il seguente comando crea un gruppo di istanze gestite a livello di regione in tre zone all'interno della regioneus-east1
:gcloud compute instance-groups managed create example-rmig \ --template example-template \ --size 30 \ --region us-east1
Se vuoi selezionare zone specifiche che il gruppo deve utilizzare, fornisci il flag
--zones
:gcloud compute instance-groups managed create example-rmig \ --template example-template \ --size 30 \ --zones us-east1-b,us-east1-c
Se vuoi disattivare la ridistribuzione proattiva delle istanze, consulta Disattivare la ridistribuzione proattiva delle istanze.
Terraform
Se non hai ancora creato un modello di istanza che specifichi il tipo di macchina, l'immagine del disco di avvio, la rete e altre proprietà della VM che vuoi per ogni VM nel tuo gruppo di istanze gestite, crea un modello di istanza.
Per creare un gruppo di istanze gestite a livello di regione, puoi utilizzare la
google_compute_region_instance_group_manager
risorsa.Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
REST
Tutti i gruppi di istanze gestite richiedono un modello di istanza. Se non ne hai uno, crea un modello di istanza.
A questo punto, crea una richiesta
POST
al metodoregionInstanceGroupManagers.insert
. Nel corpo della richiesta, specifica il nome del gruppo, la dimensione del gruppo e l'URL al modello di istanze. Se vuoi, specifica altri campi, ad esempio il nome di base per le istanze nel gruppo.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "baseInstanceName": "BASE_INSTANCE_NAME", "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "name": "INSTANCE_GROUP_NAME", "targetSize": "TARGET_SIZE" }
Sostituisci quanto segue:
Se vuoi selezionare zone specifiche o se stai creando VM in una regione con meno o più di tre zone, includi la proprietà
distributionPolicy
nella richiesta e fornisci un elenco di zone. SostituisciZONE
con il nome di una zona in cui creare le VM.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "baseInstanceName": "BASE_INSTANCE_NAME", "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "name": "INSTANCE_GROUP_NAME", "targetSize": "TARGET_SIZE", "distributionPolicy": { "zones": [ {"zone": "zones/ZONE"}, {"zone": "zones/ZONE"} ] } }
Ad esempio, il seguente comando crea un gruppo di istanze gestite a livello di area geografica denominato
example-rmig
con 10 istanze gestite distribuite nelle zoneus-east1-b
eus-east1-c
:POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers { "instanceTemplate": "global/instanceTemplates/example-instance", "name": "example-rmig", "targetSize": 10, "distributionPolicy": { "zones": [ {"zone": "zones/us-east1-b"}, {"zone": "zones/us-east1-c"} ] } }
A seconda di come configuri e intervieni su un gruppo di istanze gestite, vari criteri e azioni possono influire sulle istanze del gruppo. Per determinare quali istanze gestite sono attive, consulta Controllare lo stato delle istanze gestite.
Se in ogni zona non è presente una capacità sufficiente per supportare le VM per il gruppo, Compute Engine crea il maggior numero possibile di VM e continua a tentare di creare le VM rimanenti quando diventa disponibile una capacità aggiuntiva.
Se non specifichi esplicitamente le singole zone nella richiesta, Compute Engine sceglie automaticamente tre zone in cui creare le VM. Se devi creare VM in più o meno di tre zone o se vuoi scegliere le zone da utilizzare, puoi fornire un elenco di zone nella richiesta. Per saperne di più, consulta Selezione delle zone.
Distribuzione delle VM tra le zone
Per impostazione predefinita, un gruppo di istanze gestite a livello di regione distribuisce le VM in modo uniforme tra le zone selezionate. Poiché stai creando un gruppo di istanze gestite a livello di regione, tieni presente che alcune risorse sono a livello di zona, come le GPU e i dischi permanenti esistenti. Se il modello di istanza del MIG specifica risorse zonali, devi assicurarti che tutte queste risorse siano presenti in tutte le zone selezionate in modo che possano essere collegate alle VM create dal MIG regionale. In alternativa, se vuoi che il gruppo esegua il controllo dell'esistenza di risorse zonali per tuo conto, puoi impostare la forma di distribuzione di destinazione del gruppo di istanze gestite in modo da creare istanze solo nelle zone che contengono queste risorse.
Per ulteriori informazioni, consulta i seguenti documenti:
Ridistribuzione proattiva delle istanze
La ridistribuzione proattiva delle istanze è attivata per impostazione predefinita. Se devi gestire manualmente il numero di VM in ogni zona o se devi impostare la forma di distribuzione di destinazione del MIG su
BALANCED
oANY_SINGLE_ZONE
, devi disattivare la ridistribuzione proattiva delle istanze.Per ulteriori informazioni, consulta la seguente documentazione:
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-11-23 UTC.
-