Un gruppo di istanze gestite stateful (stateful MIG) conserva lo stato univoco di ogni istanza di macchina virtuale (VM), tra cui il nome della VM, i dischi permanenti collegati, gli indirizzi IP e/o i metadati, in caso di riavvio, ricreazione, riparazione automatica o aggiornamento della macchina.
Questa pagina descrive il funzionamento dei MIG stateful. Consulta la sezione Configurazione dei 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.
Crea 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 che vuoi conservare per tutte le istanze del MIG.
- Una configurazione per istanza definisce gli elementi da conservare per un'istanza VM specifica.
La configurazione diventa effettiva dopo che tu o il gruppo di istanze gestite la applicate:
- 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 con stato (criteri con stato e/o configurazioni per istanza), puoi verificarla controllando lo stato preservato di ogni istanza gestita.
Le modifiche successive alle dimensioni o alla configurazione con stato del MIG (ad esempio, la riduzione delle dimensioni del MIG o l'eliminazione o l'abbandono di istanze dal MIG) possono influire sugli stati preservati delle istanze.
Come viene applicata la configurazione stateful alle istanze gestite
La configurazione stateful diventa effettiva dopo che tu o il gruppo di istanze gestite la applicate. L'applicazione della configurazione stateful alle istanze di un MIG dipende dalla configurazione:
- Criteri 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 configurazioni per istanza, puoi scegliere se applicare la nuova configurazione manualmente o automaticamente.
Come vengono applicati gli aggiornamenti dei criteri con stato alle istanze
Quando crei o aggiorni un regolamento stateful, ad esempio aggiungi o rimuovi un disco stateful, il gruppo di istanze gestite applica la configurazione del regolamento stateful a tutte le istanze gestite del gruppo automaticamente e in modo asincrono. Un gruppo di istanze gestite applica automaticamente la configurazione dei criteri stateful alle nuove istanze durante la loro creazione, ad esempio quando viene aumentata la dimensione di un gruppo di istanze gestite o quando crei manualmente le istanze nel gruppo di istanze gestite.
Dopo aver applicato la configurazione, puoi vedere l'effetto dell'aggiornamento nello stato preservato dal criterio di ogni istanza gestita.
Gli aggiornamenti a un criterio con stato 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 configurati come stateful. In questo modo viene impedita l'eliminazione del disco durante la ricreazione dell'istanza tramite riparazione automatica, aggiornamento o 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 dell'indicatore autoDelete
non interrompe una VM in esecuzione.
Come vengono applicati gli aggiornamenti della configurazione per istanza alle istanze
Quando crei o aggiorni una configurazione per istanza, puoi scegliere se applicare la nuova configurazione manualmente o automaticamente. Per ulteriori informazioni, consulta la sezione Applicare una configurazione con stato da configurazioni per istanza.
La tabella seguente mostra i livelli di interruzione obbligatori per applicare diversi aggiornamenti di configurazione per istanza a una VM:
Aggiornamento della configurazione per istanza | Interruzione della VM necessaria per l'applicazione |
---|---|
Configura un disco, definito dal modello di istanza, in modo che sia stateful (aggiunto alla configurazione per istanza) | AGGIORNA |
Configura 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 |
Rimuovi un disco non definito dal modello di istanza e scollegalo dalla VM | AGGIORNA |
Aggiungere una coppia chiave-valore dei 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 |
Impostare un indirizzo IP interno | SOSTITUISCI |
Rimuovere un indirizzo IP interno | SOSTITUISCI |
Quando viene applicata una configurazione per istanza aggiornata alla VM corrispondente, il gruppo di istanze gestite esegue le seguenti azioni a seconda degli elementi stateful aggiornati:
- Aggiunge (o rimuove) dischi, indirizzi IP o metadati allo stato preservato 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) gli 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 preservato dalla configurazione dell'istanza.
Stato conservato di un'istanza gestita
Quando viene applicato, il MIG traduce il modello di istanza e la configurazione stateful in uno "stato preservato" per ogni istanza gestita.
Puoi visualizzare lo stato preservato controllando un'istanza gestita.
Il gruppo di istanze gestite gestisce automaticamente questi stati preservati e li applica automaticamente e in modo asincrono 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 distintamente dallo stato conservato generato in base a una configurazione per istanza. Il gruppo di istanze gestite li combina entrambi durante la ricreazione di una VM, dando la priorità allo stato conservato di una configurazione per istanza.
Stato conservato in base al criterio 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 singolarmente per ogni istanza VM in un gruppo di istanze gestite.
Una volta applicato, il gruppo di istanze gestite traduce il criterio stateful in stati conservati specifici per l'istanza (managedInstances[].preservedStateFromPolicy
). Il gruppo di istanze gestite gestisce 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 applicato a ogni istanza. In questo esempio non sono presenti configurazioni per istanza.
La figura precedente mostra un gruppo MIG con due istanze:
- Il modello di istanza definisce un disco di avvio con il nome del dispositivo
boot-disk
e un disco con il nome del 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 il nome del dispositivodata-disk
deve essere e viene definito dal modello di istanza. - Dopo l'applicazione della configurazione, l'MIG traduce il criterio con stato in stati conservati specifici per ogni istanza gestita. Gli stati conservati chiedono 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
, poiché entrambi i dischi hanno il nome del dispositivodata-disk
configurato nel criterio stateful. - Questo esempio non ha configurazioni per istanza.
Stato preservato 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 MIG.
Se applicato, il MIG traduce 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 è presente alcun criterio stateful.
Nella figura precedente:
- Il modello di istanza definisce un disco di avvio con il nome del dispositivo
boot-disk
per tutte le istanze del gruppo di istanze gestite. Il disco di avvio è senza stato per tutte le VM nel gruppo di istanze gestite. - Le configurazioni per istanza definiscono gli stati da conservare per due istanze nel MIG:
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 traduce automaticamente le configurazioni per istanza in stati preservati per ogni istanza gestita. Gli stati conservati ordinano al gruppo di istanze gestite di collegare e conservare quanto segue:
- Disco permanente
my-legacy-1
e metadatinode-id:xyz273
per la VMnode-1
- Disco permanente
my-logs-1
e metadatinode-id:pqr851
per la VMnode-2
- Disco permanente
- Questo esempio non ha criteri con stato.
Tieni presente che i dischi e i metadati nello stato conservato delle configurazioni per istanza non sono definiti dal modello di istanza in questo esempio, ma 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 precedenza sul criterio stateful e sul modello di istanza
In un MIG puoi configurare sia un criterio stateful sia una o più configurazioni per istanza. Ad esempio, in un criterio stateful puoi definire dischi stateful presenti in tutte le istanze e, nelle configurazioni per istanza, puoi definire metadati specifici per istanza.
La configurazione per istanza di un'istanza gestita ha la precedenza 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
che è già definita in un criterio stateful, l'MIG memorizza la configurazione stateful per quel disco o quell'interfaccia di rete nello stato conservato dell'istanza gestita dalla configurazione per istanza (preservedStateFromConfig
) erimuove le voci in conflitto dal suo
stato conservato dal criterio
(preservedStateFromPolicy). Il MIG deve
aggiornare
la VM se il nuovo stato preservato è diverso da quello precedente. L'aggiornamento potrebbe comportare la modifica dei metadati, l'indirizzo IP esterno o lo scambio del disco per scollegare il disco dall'ultima configurazione dello stato preservato e collegare il disco specificato nella nuova configurazione dello stato preservato.
Nell'esempio seguente, la configurazione per istanza per l'istanza VM node-1
ridefinisce:
- Lo stato conservato per il disco con il nome del dispositivo
logs-disk
, originariamente definito nel criterio stateful - Il valore per la chiave dei metadati
logmonth
, originariamente definito nel modello di istanza.
Nella figura precedente:
- Il modello di istanza definisce:
- Tre dischi per tutte le istanze del gruppo di istanze gestite, con nomi di dispositivo
boot-disk
,data-disk
,logs-disk
. - Metadati comuni a tutte le istanze:
logmonth:jan
.
- Tre dischi per tutte le istanze del gruppo di istanze gestite, con nomi di dispositivo
- Il criterio stateful dichiara che i dischi con i nomi dei dispositivi
data-disk
elogs-disk
sono stateful; il disco di avvio rimane stateless. - Una configurazione per istanza per l'istanza
node-1
ridefinisce:- Configurazione con stato 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 MIG di impostare il valorelogmonth:feb
sunode-1
.
- Configurazione con stato per un disco con nome dispositivo
- Dopo aver applicato la configurazione, il gruppo di istanze gestite traduce automaticamente il criterio stateful e la configurazione per istanza in uno stato conservato specifico per l'istanza, archiviato nell'istanza gestita.
- Lo stato conservato dal criterio indica al MIG di conservare il
disco
data-disk-1
per la VMnode-1
. Tieni presente che lo stato conservato dal criterio non include la configurazione con stato per il disco con il nome del 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 i metadatilogmonth:jan
dal modello di istanza.
- Lo stato conservato dal criterio indica al MIG di conservare il
disco
In che modo la rimozione di una risorsa da un criterio stateful influisce sullo stato conservato
Se rimuovi una configurazione della risorsa dal criterio con stato, il gruppo di istanze gestite rimuove automaticamente il corrispondente preservedStateFromPolicy
per tutte le istanze gestite. Le risorse di calcolo rimangono collegate alle istanze, ma non sono più stateful.
Nell'esempio seguente, la rimozione di un disco dal criterio con stato comporta la rimozione del disco dagli stati conservati dal criterio in tutte le VM gestite. Questi dischi rimangono collegati alle 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 sia in una configurazione per istanza e rimuovi la relativa configurazione stateful 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.
Nel seguente esempio, la rimozione del disco dal criterio stateful non comporta la rimozione del disco dalla configurazione per istanza. Il disco rimane con stato perché fa ancora parte dello stato preservato dalla 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 calcolo che non fanno più parte di alcun 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 con stato da una configurazione per istanza e applichi la modifica all'istanza VM associata, il gruppo di istanze gestite esegue le seguenti operazioni:
- La configurazione del disco viene rimossa dall'stato preservato dalla configurazione dell'istanza.
- Se un disco con lo stesso nome del dispositivo è definito nel modello di istanza, ma non è configurato in un criterio con stato, il disco rimane collegato alla VM in questione. Tuttavia, il disco diventa stateless per la VM indicata e potrebbe essere ricreato in base alla configurazione del modello di istanza al successivo evento di ricreazione, riparazione automatica o aggiornamento della VM.
- Se nel modello di istanza non è definito un disco con lo stesso nome del dispositivo, questo viene scollegato automaticamente dalla VM immediatamente dopo l'applicazione della configurazione per istanza aggiornata alla VM associata, indipendentemente dalla configurazione di eliminazione automatica.
- Se un disco con lo stesso nome del dispositivo è configurato in un criterio stateful, la relativa configurazione viene tradotta nello stato conservato dal criterio per la determinata istanza gestita e il disco rimane stateful.
Nell'esempio seguente, la rimozione di un disco blu e di un disco verde dalla configurazione per istanza di node-1
comporta la rimozione di entrambi i dischi dallo stato preservato dell'istanza gestita di node-1
dalla configurazione.
- Il disco blu rimane collegato all'istanza VM
node-1
, ma ora è stato statoless e può essere ricreato alla successiva ricreazione della VM in base alla configurazione del modello di istanza. - Il disco verde è scollegato dall'istanza VM
node-1
perché il modello di istanza non definisce un disco con lo stesso nome del 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 fanno sì che l'MIG rimuovi immediatamente i metadati stateful dallo stato preservato 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 all'istanza.
- Se i metadati con la stessa chiave non sono definiti nel modello dell'istanza, il MIG 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 preservato dell'istanza gestita node-1
dalla configurazione.
mode:dev
viene sostituito damode:test
del modello di istanza nella VM.id:xyz273
viene rimosso immediatamente dalla VM perché il modello di istanza non contiene 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
La rimozione della configurazione IP interna dalla configurazione per istanza rende l'indirizzo IP di questa VM senza stato. Non vengono apportate modifiche automatiche a questa VM, ma l'indirizzo IP può cambiare dopo la sua ricreazione, l'aggiornamento o la riparazione automatica.
Ripristino del criterio 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 rimane stateful in base al criterio stateful.
Il gruppo di istanze gestite rimuove automaticamente la configurazione con stato dell'elemento da
preservedStateFromConfig
e la aggiunge al
preservedStateFromPolicy
per l'istanza gestita corrispondente.
Nel seguente esempio, 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 dal
preserveStateFromConfig
per l'istanza gestitanode-1
perché il disco non fa più parte della configurazione per istanza. - Il gruppo di istanze gestite aggiunge automaticamente il disco a
preserveStateFromPolicy
per l'node-1
istanza gestita perché la configurazione dei criteri stateful è ancora in vigore e non è più in conflitto con la configurazione per istanza dinode-1
.
Feedback
Vorremmo conoscere i tuoi casi d'uso, le tue sfide e i tuoi feedback sulle MIG stateful. Condividi il tuo feedback con il nostro team all'indirizzo mig-discuss@google.com.
Passaggi successivi
- Scopri in che modo configurazioni e azioni MIG diverse influiscono sullo stato conservato.
- Per informazioni su come supportare i carichi di lavoro stateful preservando i nomi delle istanze, i dischi persistenti e i metadati nelle istanze gestite, consulta Configurazione di gruppi di istanze gestite stateful.
- Scopri di più su quando utilizzare i gruppi di istanze gestite stateful.
- Scopri come eseguire la migrazione di un carico di lavoro esistente a un gruppo di istanze gestite stateful.
- Scopri di più sui gruppi di istanze gestite.
- Utilizza le istanze gestite.