Un gruppo di istanze gestite stateful (MIG stateful) conserva lo stato univoco di ogni istanza di macchina virtuale (VM), tra cui nome VM, dischi permanenti collegati, indirizzi IP e/o metadati, al riavvio, alla ricreazione, alla riparazione automatica o all'aggiornamento della macchina.
Questa pagina descrive il funzionamento dei MIG stateful. Consulta la pagina relativa alla configurazione di MIG stateful per scoprire come configurare un gruppo di istanze gestite stateful.
Panoramica del funzionamento dei MIG stateful
Un gruppo di istanze gestite è considerato stateful se hai creato una configurazione stateful.
Puoi creare una configurazione stateful impostando un criterio stateful non vuoto e/o una o più configurazioni per istanza non vuote:
- Un criterio stateful definisce gli elementi da conservare per tutte le istanze nel gruppo di istanze gestite.
- Una configurazione per istanza definisce gli elementi da conservare per una specifica istanza VM.
La configurazione viene applicata dopo l'applicazione da parte tua o del gruppo di istanze gestite:
- Un gruppo di istanze gestite applica automaticamente la configurazione dei criteri stateful alle istanze nuove ed esistenti.
- Quando crei o aggiorni le configurazioni per istanza, puoi scegliere se applicare la nuova configurazione manualmente o automaticamente.
Dopo aver applicato la configurazione stateful (criterio stateful e/o configurazioni per istanza), puoi verificarla ispezionando lo stato di conservazione di ogni istanza gestita.
Le modifiche successive alla configurazione o alla dimensione stateful del gruppo di istanze gestite (ad esempio, riduzione delle dimensioni del gruppo di istanze gestite oppure eliminazione o abbandono delle istanze dal gruppo di istanze gestite) possono influire sugli stati conservati delle istanze.
Come viene applicata la configurazione stateful alle istanze gestite
La configurazione stateful diventa effettiva dopo l'applicazione da parte tua o del gruppo di istanze gestite. L'applicazione della configurazione stateful alle istanze di un gruppo di istanze gestite dipende dalla configurazione:
- Criterio stateful: il gruppo di istanze gestite applica automaticamente la configurazione dei criteri stateful alle istanze nuove ed esistenti.
- Configurazioni per istanza: quando crei o aggiorni le configurazioni per istanza, puoi scegliere se applicare la nuova configurazione manualmente o automaticamente.
Come vengono applicati gli aggiornamenti dei criteri stateful alle istanze
Quando crei o aggiorni un criterio stateful, ad esempio aggiungi o rimuovi un disco stateful, il gruppo di istanze gestite applica la configurazione dei criteri stateful a tutte le istanze gestite nel gruppo in modo automatico e asincrono. Un gruppo di istanze gestite applica automaticamente la configurazione dei criteri stateful alle nuove istanze durante la loro creazione, ad esempio quando le dimensioni di un gruppo di istanze gestite aumentano o quando si creano manualmente le istanze nel gruppo di istanze gestite.
Dopo aver applicato la configurazione, puoi vedere l'effetto dell'aggiornamento nello stato di conservazione dal criterio di ogni istanza gestita.
Gli aggiornamenti a un criterio stateful non interrompono le VM in esecuzione.
Quando aggiorni un criterio stateful per aggiungere un disco stateful, il gruppo di istanze gestite aggiorna ogni risorsa VM, modificando il valore del flag autoDelete
del disco (instances.disks[].autoDelete
):
- Il gruppo di istanze gestite imposta
autoDelete
suFALSE
per i dischi che configuri come stateful. Questo impedisce l'eliminazione del disco durante la ricreazione dell'istanza mediante la riparazione automatica, l'aggiornamento o la ricreazione manuale. - Il gruppo di istanze gestite imposta
autoDelete
in modo che corrisponda alla configurazione del modello di istanza (instanceTemplates.disks[].autoDelete
) per tutti i dischi che devono essere stateless.
La modifica del valore del flag autoDelete
non interrompe una VM in esecuzione.
Come vengono applicati alle istanze gli aggiornamenti della configurazione per istanza
Quando crei o aggiorni una configurazione per istanza, puoi scegliere se applicare la nuova configurazione manualmente o automaticamente. Per saperne di più, consulta Applicare una configurazione stateful da configurazioni per istanza.
La tabella seguente mostra i livelli di interruzione necessari per applicare aggiornamenti della configurazione per istanza diversi a una VM:
Aggiornamento della configurazione per istanza | Interruzione alla VM richiesta per l'applicazione |
---|---|
Configura un disco, definito dal modello di istanza, in modo che sia stateful (aggiunto alla configurazione per istanza) | AGGIORNA |
Configurare un disco, definito dal modello di istanza, in modo che sia stateless (rimosso dalla configurazione per istanza) | AGGIORNA |
Aggiungi un disco, non definito dal modello di istanza, e collegalo alla VM | AGGIORNA |
Rimuovere un disco, non definito dal modello di istanza, e scollegarlo dalla VM | AGGIORNA |
Aggiungi una coppia chiave-valore di metadati | AGGIORNA |
Rimuovere una coppia chiave-valore dei metadati | AGGIORNA |
Aggiungi un disco di avvio esterno, non creato dal modello di istanza, e collegalo alla VM | SOSTITUISCI |
Rimuovi un disco di avvio esterno, non creato dal modello di istanza, scollegalo dalla VM e crea un disco di avvio dal modello di istanza | SOSTITUISCI |
Imposta un indirizzo IP interno | SOSTITUISCI |
Rimuovere un indirizzo IP interno | SOSTITUISCI |
Quando si applica una configurazione per istanza aggiornata alla VM corrispondente, il gruppo di istanze gestite esegue le seguenti azioni in base agli elementi stateful aggiornati:
- Aggiunge (o rimuove) dischi, indirizzi IP o metadati allo stato di conservazione dalla configurazione nell'istanza gestita corrispondente.
- Collega (o scollega) alla VM i dischi non definiti dal modello di istanza.
- Imposta (o rimuove) coppie chiave-valore dei metadati specifiche per la VM.
- Assegna (o rimuove) indirizzi IP specificati all'istanza VM.
Dopo aver applicato una configurazione per istanza a una VM gestita corrispondente, puoi vedere l'effetto dell'aggiornamento nello stato di conservazione dell'istanza dalla configurazione.
Stato conservato di un'istanza gestita
Quando viene applicato, il gruppo di istanze gestite converte il modello di istanza e la configurazione stateful in uno "stato conservato" per ogni istanza gestita.
Per visualizzare lo stato conservato, ispeziona un'istanza gestita.
Il gruppo di istanze gestite mantiene automaticamente questi stati conservati e il gruppo di istanze gestite applica automaticamente e in modo asincrono questo stato a ogni istanza VM effettiva corrispondente nel gruppo di istanze gestite.
Lo stato conservato descrive quali singoli elementi (dischi permanenti, indirizzi IP, metadati) sono stateful per una determinata istanza:
Lo stato conservato generato in base a un criterio stateful viene archiviato separatamente da quello generato in base a una configurazione per istanza. Il gruppo di istanze gestite li combina entrambi quando ricrea una VM, con lo stato conservato di una configurazione per istanza che avrà la priorità.
Stato conservato in base ai criteri stateful
Un criterio stateful specifica gli elementi, presenti in tutte le istanze e definiti nel modello di istanza del gruppo di istanze gestite, da conservare individualmente per ogni istanza VM in un gruppo di istanze gestite.
Se applicato, il gruppo di istanze gestite converte il criterio stateful in stati conservati specifici dell'istanza (managedInstances[].preservedStateFromPolicy
). Il gruppo di istanze gestite mantiene automaticamente questi stati conservati.
L'esempio seguente mostra un gruppo di istanze gestite con due istanze VM che utilizzano un disco stateful definito in un criterio stateful che si applica a ogni istanza. In questo esempio non sono presenti configurazioni per istanza.
La figura precedente mostra un gruppo di istanze gestite con due istanze:
- Il modello di istanza definisce un disco di avvio con nome dispositivo
boot-disk
e un disco con nome dispositivodata-disk
per tutte le istanze nel gruppo di istanze gestite. - Il criterio stateful dichiara
data-disk
come stateful. Il disco di avvio rimane stateless. Tieni presente che il disco con nome del dispositivo,data-disk
, deve essere ed è definito dal modello di istanza. - Dopo l'applicazione della configurazione, il gruppo di istanze gestite converte il criterio stateful in stati conservati specifici dell'istanza per ogni istanza gestita. Gli stati conservati indicano al gruppo di istanze gestite di conservare il disco
data-disk-1
per l'istanza VMnode-1
e il discodata-disk-2
per l'istanzanode-2
, perché per entrambi i dischi è configurato il nome dispositivodata-disk
nel criterio stateful. - Questo esempio non ha configurazioni per istanza.
Stato conservato in base alla configurazione per istanza
Una configurazione per istanza specifica gli elementi che devono essere conservati per una determinata VM. Questi elementi non devono essere definiti nel modello di istanza del gruppo di istanze gestite.
Se applicato, il gruppo di istanze gestite converte ogni configurazione per istanza in uno stato conservato (preservedStateFromConfig
) per l'istanza corrispondente.
L'esempio seguente mostra un gruppo di istanze gestite con due istanze VM per le quali i metadati e i dischi stateful sono definiti nelle configurazioni per istanza (PIC) per ogni istanza. In questo esempio non esistono criteri stateful.
Nella figura precedente:
- Il modello di istanza definisce un disco di avvio con nome dispositivo
boot-disk
per tutte le istanze nel gruppo di istanze gestite. Il disco di avvio è stateless per tutte le VM nel gruppo di istanze gestite. - Le configurazioni per istanza definiscono gli stati da conservare per due istanze nel gruppo di istanze gestite:
node-1
enode-2
.- Per l'istanza
node-1
, la configurazione per istanza definisce un discomy-legacy-1
con il nome del dispositivolegacy-disk
e i metadatinode-id:xyz273
. - Per l'istanza
node-2
, la configurazione per istanza definisce un discomy-logs-1
con il nome del dispositivologs-disk
e i metadatinode-id:pqr851
.
- Per l'istanza
- Dopo l'applicazione della configurazione, il gruppo di istanze gestite converte automaticamente le configurazioni per istanza in stati conservati per ogni istanza gestita. Gli stati conservati indicano al gruppo di istanze gestite di collegare e preservare quanto segue:
- Disco permanente
my-legacy-1
e metadatinode-id:xyz273
per VMnode-1
- Disco permanente
my-logs-1
e metadatinode-id:pqr851
per VMnode-2
- Disco permanente
- Questo esempio non ha un criterio stateful.
Tieni presente che i dischi e i metadati nello stato conservato dalle configurazioni per istanza non sono definiti dal modello di istanza in questo esempio, ma sono definiti solo dalle configurazioni per istanza. Questo perché la configurazione specificata in una configurazione per istanza è specifica per una determinata VM, il che significa che non deve essere presente nel modello di istanza.
Le configurazioni per istanza hanno la priorità sui criteri stateful e sul modello di istanza
Puoi configurare sia un criterio stateful sia una o più configurazioni per istanza in un gruppo di istanze gestite. Ad esempio, in un criterio stateful puoi definire dischi stateful presenti in tutte le istanze, mentre nelle configurazioni per istanza puoi definire metadati specifici per l'istanza.
La configurazione per istanza di un'istanza gestita ha la priorità sulla configurazione in conflitto nel modello di istanza o in un criterio stateful.
Se applichi una configurazione per istanza per aggiungere un disco o un'interfaccia di rete già definiti in un criterio stateful, il gruppo di istanze gestite archivia la configurazione stateful per il disco o l'interfaccia di rete in questione nello stato conservato dell'istanza gestita dalla configurazione per istanza (preservedStateFromConfig
) e rimuove le voci in conflitto dal relativo stato conservato dal criterio (preservationStateFromPolicy). Il gruppo di istanze gestite deve aggiornare la VM se il nuovo stato conservato è diverso da quello precedente. L'aggiornamento potrebbe comportare una modifica dei metadati, dell'indirizzo IP esterno o uno scambio del disco per scollegare il disco dall'ultima configurazione dello stato conservata e collegare il disco specificato nella nuova configurazione dello stato conservato.
Nell'esempio seguente, la configurazione per istanza per l'istanza VM node-1
ridefinisce:
- Lo stato conservato per il disco con nome dispositivo
logs-disk
, originariamente definito nel criterio stateful - Il valore della chiave dei metadati
logmonth
, definito originariamente nel modello di istanza.
Nella figura precedente:
- Il modello di istanza definisce:
- Tre dischi per tutte le istanze nel gruppo di istanze gestite, con nomi dei dispositivi
boot-disk
,data-disk
,logs-disk
. - Metadati comuni a tutte le istanze:
logmonth:jan
.
- Tre dischi per tutte le istanze nel gruppo di istanze gestite, con nomi dei dispositivi
- Il criterio stateful dichiara che i dischi con i nomi dei dispositivi
data-disk
elogs-disk
sono stateful, mentre il disco di avvio rimane stateless. - Una configurazione per istanza per l'istanza
node-1
ridefinisce:- Configurazione stateful per un disco con nome dispositivo
logs-disk
: indica al gruppo di istanze gestite di collegare il discopd-logs-feb
anode-1
sotto il nome del dispositivologs-disk
. - Metadati, definiti nel modello di istanza, con valore chiave
logmonth:jan
: indica al gruppo di istanze gestite di impostare il valorelogmonth:feb
sunode-1
.
- Configurazione stateful per un disco con nome dispositivo
- Dopo l'applicazione, la configurazione, il gruppo di istanze gestite converte automaticamente il criterio stateful e la configurazione per istanza in uno stato conservato specifico dell'istanza, archiviato nell'istanza gestita.
- Lo stato conservato dal criterio indica al gruppo di istanze gestite di conservare il disco
data-disk-1
per la VMnode-1
. Tieni presente che lo stato conservato dal criterio non include la configurazione stateful per il disco con nome dispositivologs-disk
perché questa configurazione viene sostituita dalla configurazione perlogs-disk
nella configurazione per istanza. - Lo stato conservato dalla configurazione indica al gruppo di istanze gestite di collegare e conservare il disco permanente
logs-disk
e di impostare e conservare i metadatilogmonth:feb
per l'istanza VMnode-1
. Tieni presente che lo stato conservato dalla configurazione sostituisce la configurazione perlogs-disk
dal criterio stateful e sostituisce i metadatilogmonth:jan
del modello di istanza.
- Lo stato conservato dal criterio indica al gruppo di istanze gestite di conservare il disco
In che modo la rimozione di una risorsa da un criterio stateful influisce sullo stato conservato
Se rimuovi una configurazione delle risorse dal criterio stateful, il gruppo di istanze gestite rimuove automaticamente il corrispondente elemento preservedStateFromPolicy
per tutte le istanze gestite. Le risorse di computing rimangono collegate
alle istanze, ma non sono più stateful.
Nell'esempio seguente, la rimozione di un disco dal criterio stateful ne comporta la rimozione dagli stati conservati dal criterio in tutte le VM gestite. Questi dischi rimangono collegati alle rispettive VM, ma non sono più stateful e potrebbero essere eliminati e ricreati alla successiva ricreazione della VM.
Se lo stesso elemento, ad esempio un disco permanente stateful, è presente sia nel criterio stateful che in una configurazione per istanza e ne rimuovi la configurazione solo dal criterio stateful, il gruppo di istanze gestite non lo rimuove dalla configurazione per istanza. Per la VM corrispondente, la risorsa configurata rimane stateful.
Nell'esempio seguente, la rimozione del disco dal criterio stateful non comporta la rimozione del disco dalla configurazione per istanza. Il disco rimane stateful perché fa ancora parte dello stato conservato della configurazione.
In che modo la rimozione di elementi dalle configurazioni per istanza influisce sullo stato conservato
Se rimuovi la configurazione stateful da una configurazione per istanza e applichi la modifica, il gruppo di istanze gestite rimuove automaticamente la configurazione stateful dallo stato conservato dalla configurazione (preservedStateFromConfig
) nell'istanza gestita corrispondente. Le risorse di computing che non fanno più parte
di uno stato conservato diventano stateless.
In che modo la rimozione della configurazione dei dischi stateful dalle configurazioni per istanza influisce sullo stato conservato
Se rimuovi un disco stateful da una configurazione per istanza e applichi la modifica all'istanza VM associata, il gruppo di istanze gestite esegue quanto segue:
- La configurazione del disco viene rimossa dallo stato di conservazione dalla configurazione dell'istanza.
- Se nel modello di istanza è definito un disco con lo stesso nome di dispositivo, ma non è configurato in un criterio stateful, il disco rimane collegato alla VM specificata. Tuttavia, il disco diventa stateless per la VM specificata e potrebbe essere ricreato in base alla configurazione del modello di istanza al successivo evento di nuova creazione, riparazione automatica o aggiornamento della VM.
- Se un disco con lo stesso nome di dispositivo non è definito nel modello di istanza, verrà automaticamente scollegato dalla VM subito dopo l'applicazione della configurazione per istanza aggiornata alla VM associata, indipendentemente dalla configurazione di eliminazione automatica.
- Se un disco con lo stesso nome di dispositivo viene configurato in un criterio stateful, la configurazione dei criteri stateful viene convertita nello stato conservato dal criterio per l'istanza gestita specificata e il disco rimane stateful.
Nell'esempio seguente, la rimozione di un disco blu e verde dalla configurazione per istanza di node-1
comporta la rimozione di entrambi i dischi dallo stato conservato dell'istanza gestita node-1
dalla configurazione.
- Il disco blu rimane collegato all'istanza VM
node-1
, ma ora è stateless e può essere ricreato alla successiva ricreazione della VM in base alla configurazione del modello di istanza. - Il disco verde viene scollegato dall'istanza VM
node-1
perché il modello di istanza non definisce un disco con lo stesso nome dispositivo.
In che modo la rimozione dei metadati stateful dalle configurazioni per istanza influisce sullo stato conservato
La rimozione dei metadati stateful da una configurazione per istanza e l'applicazione della modifica consente al gruppo di istanze gestite di rimuovere immediatamente i metadati stateful dallo stato conservato dell'istanza gestita corrispondente:
- Se hai definito i metadati con la stessa chiave nel modello di istanza, il gruppo di istanze gestite applica immediatamente il valore del modello di istanza all'istanza.
- Se i metadati con la stessa chiave non sono definiti nel modello di istanza, il gruppo di istanze gestite rimuove immediatamente il valore della chiave dall'istanza.
Nell'esempio seguente, la rimozione dei metadati mode:dev
e id:xyz273
dalla configurazione per istanza di node-1
comporta la rimozione automatica di entrambe le coppie chiave-valore dallo stato conservato dell'istanza gestita node-1
dalla configurazione.
- Nella VM,
mode:dev
è sostituito dal valoremode:test
del modello di istanza. id:xyz273
viene rimosso immediatamente dalla VM perché il modello di istanza non ha metadati con la stessa chiaveid
con cui sostituirlo.
In che modo la rimozione della configurazione IP stateful dalle configurazioni per istanza influisce sullo stato conservato
Se rimuovi la configurazione IP interno dalla configurazione per istanza, l'indirizzo IP per questa VM diventa stateless. Non vengono eseguite modifiche automatiche su questa VM, ma l'indirizzo IP può cambiare dopo che la VM è stata ricreata, aggiornata o riparata automaticamente.
Utilizza i criteri stateful
Se rimuovi la configurazione stateful di una risorsa da una configurazione per istanza e hai configurato la stessa risorsa nel criterio stateful, la risorsa rimarrà stateful in base al criterio stateful.
Il gruppo di istanze gestite rimuove automaticamente la configurazione stateful dell'elemento da preservedStateFromConfig
e la aggiunge a preservedStateFromPolicy
per l'istanza gestita corrispondente.
Nell'esempio seguente, la rimozione di un disco dalla configurazione per istanza di node-1
non comporta la rimozione del disco dal criterio stateful. Il disco rimane stateful in base al criterio stateful:
- Il gruppo di istanze gestite rimuove automaticamente il disco da
preserveStateFromConfig
per l'istanza gestitanode-1
perché il disco non fa più parte della sua configurazione per istanza. - Il gruppo di istanze gestite aggiunge automaticamente il disco a
preserveStateFromPolicy
per l'istanza gestitanode-1
perché la configurazione dei criteri stateful è ancora attiva e non è più in conflitto con la configurazione per istanza dinode-1
.
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
- Scopri in che modo configurazioni diverse e azioni di gruppo di istanze gestite influiscono sullo stato conservato.
- Per informazioni su come supportare i carichi di lavoro stateful conservando i nomi delle istanze, i dischi permanenti e i metadati nelle istanze gestite, consulta Configurazione dei gruppi di istanze gestite stateful.
- Scopri di più su quando utilizzare i MIG stateful.
- Scopri come eseguire la migrazione di un carico di lavoro esistente a un gruppo di istanze gestite stateful.
- Scopri di più sui MIG.
- Utilizzare le istanze gestite.