I metadati dell'istanza sono utili per impostare le proprietà e comunicare con le applicazioni tramite il server metadati. Ad esempio, puoi utilizzare i metadati per configurare l'identità dell'istanza di una macchina virtuale (VM), le variabili di ambiente, le informazioni sull'architettura del cluster o l'intervallo di dati di cui è responsabile una VM.
La configurazione di metadati stateful in un gruppo di istanze gestite (MIG) assicura che i metadati specifici dell'istanza vengano conservati negli eventi di riparazione automatica, aggiornamento e ricreazione dell'istanza gestita.
Configura i metadati stateful singolarmente per le istanze VM in un MIG impostandoli nelle configurazioni per istanza e applicando la configurazione. Puoi impostare una configurazione per istanza al momento della creazione dell'istanza o in base alle istanze gestite esistenti. Dopo l'applicazione della configurazione per istanza, il MIG memorizza i metadati stateful nel campo dello stato conservato dalla configurazione (preservedStateFromConfig
) di un'istanza gestita.
Prima di iniziare
- Rivedi quando utilizzare MIG stateful e come funzionano i MIG stateful.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di 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:
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
- Non puoi utilizzare la scalabilità automatica se il MIG ha una configurazione stateful.
- Se vuoi utilizzare gli aggiornamenti in sequenza automatici, devi impostare il metodo di sostituzione su
RECREATE
. - Per i MIG stateful a livello di regione, devi disattivare la ridistribuzione proattiva (imposta il tipo di ridistribuzione su
NONE
) per impedire che la ridistribuzione automatica tra zone elimini istanze stateful. Se utilizzi una configurazione di tutte le istanze per eseguire l'override delle proprietà del modello di istanza, non puoi specificare queste proprietà in una configurazione per istanza e contemporaneamente nella configurazione di tutte le istanze del gruppo.
Quando elimini definitivamente un'istanza (manualmente o durante un ridimensionamento), il MIG non conserva i metadati stateful dell'istanza.
- Crea un'istanza gestita dal modello di istanza utilizzando il nome dell'istanza fornito.
- Crea una configurazione per istanza con i metadati stateful forniti e imposta questi metadati sull'istanza.
- Archivia i metadati stateful nello stato conservato dalla configurazione (
preservedStateFromConfig
) dell'istanza gestita associata. NAME
: il nome del MIG in cui creare un'istanzaINSTANCE_NAME
: il nome dell'istanza da creareKEY
eVALUE
: coppie chiave/valore dei metadati stateful da impostare singolarmente per le istanze, oltre ai metadati definiti nel modello di istanza- I valori chiave impostati qui hanno la precedenza su eventuali valori chiave in conflitto nel modello di istanza
PROJECT_ID
: l'ID progetto per la richiestaZONE
: la zona in cui si trova il MIG (si applica a un MIG a livello di zona)- Per un MIG a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del MIG
- Per un MIG a livello di regione, sostituisci
NAME
: il nome del MIG in cui creare un'istanzaINSTANCE_NAME
: il nome dell'istanza da creareKEY
eVALUE
: coppie chiave/valore dei metadati stateful da impostare singolarmente per le istanze, oltre ai metadati definiti nel modello di istanza- I valori chiave impostati qui hanno la precedenza su eventuali valori chiave in conflitto nel modello di istanza
- Il flag
--stateful-metadata
per impostare o modificare i metadati, oppure - Il flag
--remove-stateful-metadata
per rimuovere i metadati stateful specifici dell'istanza. NAME
: il nome del gruppo di istanze gestite.INSTANCE_NAME
: il nome dell'istanza per cui configurare i metadati stateful.KEY=VALUE
: coppie chiave/valore dei metadati stateful da impostare singolarmente per l'istanza, oltre ai metadati definiti nel modello di istanza. I valori chiave impostati qui hanno la precedenza su eventuali valori chiave in conflitto nel modello di istanza.KEY
: chiavi dei metadati stateful specifici dell'istanza da rimuovere dalla configurazione per istanza.- Se il modello di istanza non definisce un valore per la chiave, all'applicazione della modifica la coppia chiave/valore viene rimossa completamente dall'istanza.
- Se il modello di istanza definisce un valore per la chiave, all'applicazione della modifica sull'istanza viene impostato il valore del modello di istanza.
MINIMAL_ACTION
: esegue almeno l'azione specificata quando all'istanza viene applicato l'aggiornamento della configurazione per istanza.MINIMAL_ACTION
può essere impostato solo quando viene utilizzato il flag--update-instance
. Il valore deve essere uno dei seguenti:none
: nessuna azione.refresh
: applica gli aggiornamenti che è possibile applicare senza arrestare l'istanza.restart
: arresta l'istanza e la riavvia.replace
: ricrea l'istanza.
Se omesso, viene utilizzata l'azione meno invasiva richiesta dall'aggiornamento.
- Imposta i metadati
mode:standby
nella configurazione per istanza associata alla VM,node-12
, nel MIGexample-cluster
. - Rimuove i metadati
logging:elaborate
dalla configurazione per istanza dell'istanzanode-12
. - Applica la modifica della configurazione per istanza alla VM
node-12
:- Imposta i metadati
mode:standby
in base alla configurazione. - Imposta i metadati
logging:basic
dal modello di istanza perché il valore della chiavelogging
non è più definito dalla configurazione per istanza.
- Imposta i metadati
- La modifica viene applicata immediatamente alla VM per impostazione predefinita perché il flag
--no-update-instance
viene omesso. - La VM continua a funzionare durante l'aggiornamento perché il flag
--instance-update-minimal-action
viene omesso e per impostazione predefinita viene scelta l'azione meno invasiva per l'aggiornamento, in questo caso:refresh
. PROJECT_ID
: l'ID progetto per la richiesta.ZONE
: la zona in cui si trova il MIG (si applica a un MIG a livello di zona).- Per un MIG a livello di regione, sostituisci
zones/ZONE
conregions/REGION
e specifica la regione del MIG.
- Per un MIG a livello di regione, sostituisci
NAME
: il nome del MIG.INSTANCE_NAME
: il nome della VM per cui configurare i metadati stateful.KEY
eVALUE
: coppie chiave/valore dei metadati stateful da impostare singolarmente per le istanze, oltre ai metadati definiti nel modello di istanza.- I valori dei metadati stateful definiti per le chiavi già esistenti nel modello di istanza sostituiscono i valori del modello di istanza.
- Le altre voci dei metadati del modello di istanza rimangono invariate e disponibili.
- Se fornisci
null
come valore, la chiave viene rimossa dalla configurazione per istanza.
FINGERPRINT
: (Facoltativo). L'impronta per la configurazione specificata, se esistente. Utilizzata per il blocco ottimistico.- Imposta i metadati
mode:standby
nella configurazione per istanza associata alla VM,node-12
, nel MIGexample-cluster
. - Rimuove i metadati
logging:elaborate
dalla configurazione per istanza perché il valore fornito ènull
. - Imposta i metadati
mode:standby
in base alla configurazione per istanza. - Imposta i metadati
logging:basic
dal modello di istanza perché il valore della chiavelogging
non è più definito dalla configurazione per istanza. - La VM continua a funzionare durante l'aggiornamento perché
minimalAction
è impostato suNONE
, il che consente al MIG di utilizzare l'azione meno invasiva richiesta per l'aggiornamento. Un aggiornamento dei metadati di un'istanza richiede l'azioneREFRESH
, che non interrompe un'istanza in esecuzione. - Scopri di più sull'archiviazione e il recupero dei metadati dell'istanza.
- Configura dischi permanenti stateful per le VM in un MIG.
- Scopri di più su come applicare, visualizzare e rimuovere la configurazione stateful.
- Scopri di più sui MIG e sull'utilizzo delle istanze gestite.
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.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.
Limitazioni
Un MIG con metadati stateful presenta le seguenti limitazioni:
Un MIG con configurazione stateful, ovvero un MIG stateful, presenta le seguenti limitazioni:
Impostazione dei metadati stateful durante la creazione dell'istanza
Imposta i metadati stateful quando crei manualmente le istanze in un MIG. Questa operazione è utile per eseguire la migrazione di un'applicazione stateful da VM autonome a un MIG stateful e per la creazione di istanze stateful.
Quando crei manualmente un'istanza in un MIG e fornisci metadati stateful, il MIG il MIG esegue le attività riportate di seguito:
gcloud
Per creare un'istanza gestita con un nome personalizzato e impostare metadati stateful sulla specifica VM, utilizza il comando
gcloud compute instance-groups managed create-instance
con il flag--stateful-metadata
.gcloud compute instance-groups managed create-instance NAME \ --instance INSTANCE_NAME \ --stateful-metadata KEY=VALUE[,KEY=VALUE,...]
Sostituisci quanto segue:
Esempio
Devi eseguire il deployment di un cluster di nodi,
example-cluster
, che può funzionare in una delle due modalità:active
ostandby
. Imposti la modalità singolarmente per ogni VM in un cluster utilizzando i metadati, ad esempio:mode:active
. Inoltre, configuri il livello di dettaglio del logging per ogni nodo utilizzando una chiave di metadatilogging
che può essere impostata subasic
oelaborate
. L'applicazione sul nodo viene configurata utilizzando i valori dei metadati dell'istanza.Per creare un nodo attivo,
node-12
, con un logging elaborato, esegui questo comando:gcloud compute instance-groups managed create-instance example-cluster \ --instance node-12 \ --stateful-metadata mode=active,logging=elaborate
Il comando crea una VM,
node-12
, nel MIGexample-cluster
e imposta due coppie chiave/valore dei metadati,mode:active
elogging:elaborate
, per la nuova istanza.Terraform
Per creare un'istanza gestita con un nome personalizzato e impostare metadati stateful sulla specifica VM, utilizza la risorsa
google_compute_per_instance_config
.L'esempio seguente utilizza un MIG a livello di zona. Se non hai ancora un MIG a livello di zona, creane uno con VM limitate a una singola zona.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
REST
Per creare una o più istanze gestite in un MIG con nomi VM personalizzati e impostare i metadati stateful singolarmente su queste VM, utilizza il metodo
instanceGroupManagers.createInstances
. Per un MIG a livello di regione, utilizza il metodoregionInstanceGroupManagers.createInstances
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances { "perInstanceConfigs": [ { "name": "INSTANCE_NAME", "preservedState" : { "metadata": { "KEY" : "VALUE", ... } } }, ... ] }
Sostituisci quanto segue:
Esempio
Devi eseguire il deployment di un cluster di nodi,
example-cluster
, che può funzionare in una delle due modalità:active
ostandby
. Imposti la modalità singolarmente per ogni VM in un cluster utilizzando i metadati, ad esempio:mode:active
. Inoltre, configuri il livello di dettaglio del logging per ogni nodo utilizzando una chiave di metadatilogging
che può essere impostata subasic
oelaborate
. L'applicazione sul nodo viene configurata utilizzando i valori dei metadati dell'istanza.Per creare un nodo attivo,
node-12
, con un logging elaborato, esegui questo metodo:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-cluster/createInstances { "instance": [ { "name": "node-12", "preservedState" : { "metadata": { "mode":"active", "logging":"elaborate" } } } ] }
Il metodo crea una VM,
node-12
, nel MIGexample-cluster
e imposta due coppie chiave/valore dei metadati,mode:active
elogging:elaborate
, per la nuova istanza.Impostazione, modifica e rimozione dei metadati stateful singolarmente per le istanze VM esistenti
Imposta, modifica o rimuovi i metadati stateful per un'istanza esistente in un MIG impostandola in una configurazione per istanza associata e poi applicando la configurazione tramite l'aggiornamento dell'istanza.
gcloud
Per configurare i metadati stateful singolarmente per un'istanza VM in un MIG, imposta o rimuovi i metadati stateful nella configurazione per istanza associata. Se applichi la configurazione all'istanza contemporaneamente (
--update-instance
), puoi scegliere se mantenere l'istanza in esecuzione, riavviarla o ricrearla. Se non applichi la configurazione (--no-update-instance
), le modifiche non vengono applicate finché non ricrei o aggiorni l'istanza.Se per una determinata istanza non esiste una configurazione per istanza, utilizza il comando
gcloud compute instance-groups managed instance-configs create
con uno dei seguenti flag:gcloud compute instance-groups managed instance-configs create NAME \ --instance INSTANCE_NAME \ --stateful-metadata KEY=VALUE[,KEY=VALUE,...] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Se per una determinata istanza esiste già una configurazione per istanza, utilizza il comando
gcloud compute instance-groups managed instance-configs update
con:gcloud compute instance-groups managed instance-configs update NAME \ --instance INSTANCE_NAME \ [--stateful-metadata KEY=VALUE[,KEY=VALUE,...]] \ [--remove-stateful-metadata KEY[,KEY,...]] \ [--no-update-instance | --update-instance] \ [--instance-update-minimal-action MINIMAL_ACTION]
Sostituisci quanto segue:
Esempio
Hai un cluster di nodi,
example-cluster
, che può funzionare in una tra due modalità:active
ostandby
. Imposti la modalità singolarmente per ogni VM nel cluster utilizzando i metadati, ad esempio:mode:active
. Inoltre, configuri il livello di dettaglio del logging per ogni nodo utilizzando una chiave di metadatilogging
che può essere impostata subasic
oelaborate
. L'applicazione su ogni nodo utilizza i valori dei metadati dell'istanza.Il modello di istanza definisce i metadati
mode:active
elogging:basic
da utilizzare come predefiniti per tutte le istanze. Hai impostatologging:elaborate
in una configurazione per istanza per la VMnode-12
nel cluster. Ora vuoi impostarenode-12
in modalità standby e impostare il logging subasic
per questa VM.Per impostare l'istanza
node-12
su standby e il relativo logging sul livello base, esegui questo comando:gcloud compute instance-groups managed instance-configs update example-cluster \ --instance node-12 \ --stateful-metadata mode=standby \ --remove-stateful-metadata logging
Il comando esegue queste operazioni:
REST
Per configurare singolarmente i metadati stateful per le istanze VM esistenti in un MIG, imposta o rimuovi i metadati nelle configurazioni per istanza associate. Aggiorna quindi l'istanza per applicare la configurazione.
Se non esistono ancora configurazioni per istanza per le istanze specificate, utilizza il metodo
instanceGroupManagers.updatePerInstanceConfigs
con metadati stateful:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs { "perInstanceConfigs": [ { "name": "INSTANCE_NAME", "preservedState" : { "metadata": { "KEY": "VALUE", ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Se esistono già configurazioni per istanza per le istanze specificate, utilizza il metodo
instanceGroupManagers.patchPerInstanceConfigs
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "INSTANCE_NAME", "preservedState" : { "metadata": { "KEY": "VALUE", ... } }, "fingerprint: "FINGERPRINT" }, ... ] }
Sostituisci quanto segue:
I metodi
updatePerInstanceConfigs
epatchPerInstanceConfigs
aggiornano le configurazioni per istanza specificate, ma non applicano gli aggiornamenti della configurazione alle istanze VM associate. Le modifiche vengono applicate a una VM quando aggiorni o ricrei l'istanza. Per applicare le modifiche a una VM, puoi applicare l'aggiornamento manualmente o utilizzare la funzionalità di aggiornamento in modalità proattiva o opportunistica.Esempio
Hai un cluster di nodi,
example-cluster
, che può funzionare in una tra due modalità:active
ostandby
. Imposti la modalità singolarmente per ogni VM nel cluster utilizzando i metadati, ad esempio:mode:active
. Inoltre, configuri il livello di dettaglio del logging per ogni nodo utilizzando una chiave di metadatilogging
che può essere impostata subasic
oelaborate
. L'applicazione su ogni nodo utilizza i valori dei metadati dell'istanza.Il modello di istanza definisce i metadati
mode:active
elogging:basic
da utilizzare come predefiniti per tutte le istanze. Hai impostatologging:elaborate
in una configurazione per istanza per la VMnode-12
nel cluster. Ora vuoi impostarenode-12
in modalità standby e impostare il logging subasic
per questa istanza.Per impostare la VM
node-12
in standby e il relativo logging sul livello base, applica una patch alla configurazione per istanza associata utilizzando il metodopatchPerInstanceConfigs
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-cluster/patchPerInstanceConfigs { "perInstanceConfigs": [ { "name": "node-12", "preservedState" : { "metadata": { "mode": "standby", "logging": null } } } ] }
Il metodo esegue queste operazioni:
L'aggiornamento della configurazione non è stato ancora applicato all'istanza VM
node-12
. L'aggiornamento della configurazione verrà applicato alla successiva ricreazione o al successivo aggiornamento dell'istanza, oppure se utilizzi l'aggiornamento automatico proattivo.Per applicare l'aggiornamento della configurazione per istanza all'istanza VM
node-12
, chiama il metodoinstanceGroupManagers.applyUpdatesToInstances
per l'istanza:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-cluster/applyUpdatesToInstances { "instances": ["/zones/us-east1-c/instances/node-12"], "minimalAction": "NONE" }
Il metodo applica la configurazione per istanza aggiornata alla VM
node-12
:Feedback
Vogliamo conoscere i tuoi casi d'uso, le tue sfide e i tuoi feedback sui MIG stateful. Condividi il tuo feedback con il nostro team all'indirizzo mig-discuss@google.com.
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 2025-06-23 UTC.
-