Come funzionano i MIG stateful


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:

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.

Applicazione della configurazione stateful alle istanze gestite.

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 su FALSE 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.

Stato preservato delle VM gestite generate dall'applicazione di una configurazione con stato.

Lo stato conservato descrive quali singoli elementi (dischi permanenti, indirizzi IP, metadati) sono stateful per una determinata istanza:

Stato preservato generato dalla configurazione stateful applicata.

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.

Stato conservato generato solo dal criterio stateful.

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 dispositivo data-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 dispositivo data-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 VM node-1 e il disco data-disk-2 per l'istanza node-2, poiché entrambi i dischi hanno il nome del dispositivo data-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.

Stato preservato generato solo da PIC.

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 e node-2.
    • Per l'istanza node-1, la configurazione per istanza definisce un disco my-legacy-1 con il nome del dispositivo legacy-disk e i metadati node-id:xyz273.
    • Per l'istanza node-2, la configurazione per istanza definisce un disco my-logs-1 con il nome del dispositivo logs-disk e i metadati node-id:pqr851.
  • 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 metadati node-id:xyz273 per la VM node-1
    • Disco permanente my-logs-1 e metadati node-id:pqr851 per la VM node-2
  • 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.

La configurazione delle configurazioni per istanza ha la precedenza sul criterio stateful e sul 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.
  • Il criterio stateful dichiara che i dischi con i nomi dei dispositivi data-disk e logs-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 disco pd-logs-feb a node-1 sotto il nome del dispositivo logs-disk.
    • Metadati, definiti nel modello di istanza, con valore chiave logmonth:jan: indica al MIG di impostare il valore logmonth:feb su node-1.
  • 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 VM node-1. Tieni presente che lo stato conservato dal criterio non include la configurazione con stato per il disco con il nome del dispositivo logs-disk perché questa configurazione viene sostituita dalla configurazione per logs-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 metadati logmonth:feb per l'istanza VM node-1. Tieni presente che lo stato conservato dalla configurazione sostituisce la configurazione per logs-disk dal criterio stateful e i metadati logmonth:jan dal modello di istanza.

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.

Rimozione di un disco da un criterio stateful.

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.

Rimozione di un disco da un criterio con stato quando esiste anche una configurazione per istanza.

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.

Rimozione dei dischi da una configurazione per istanza.

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 da mode: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 chiave id con cui sostituirlo.

Rimozione dei metadati da una configurazione per istanza.

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 gestita node-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 di node-1.

Rimozione di un disco da una configurazione per istanza, ma non dal criterio stateful.

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