Come alcune operazioni influiscono sullo stato conservato delle istanze gestite


Leggi le sezioni seguenti per scoprire in che modo varie configurazioni, azioni di gruppo di istanze gestite o eventi del ciclo di vita delle istanze influiscono sullo stato di conservazione di un'istanza gestita in un gruppo di istanze gestite:

In che modo la riparazione automatica gestisce lo stato conservato

Quando un'istanza di una macchina virtuale (VM) smette di essere eseguita o diventa non integro, la autohealing ricrea la VM e mantiene lo stato conservato per gli elementi che hai configurato:

  • Il gruppo di istanze gestite conserva i dischi stateful e gli indirizzi IP e li ricollega al ripristino della VM.
  • Il gruppo di istanze gestite conserva i metadati stateful, configurati in configurazioni per istanza e li imposta durante la ricreazione delle VM.

Per evitare errori di ricreazione delle istanze VM dovuti a un disco di avvio stateful danneggiato, mantieni il disco di avvio stateless in modo che la riparazione automatica possa ricreare il disco dallo scraping utilizzando l'immagine originale.

In che modo l'aggiornamento delle istanze gestisce lo stato conservato

Quando aggiorni un'istanza, il gruppo di istanze gestite mantiene lo stato conservato dell'istanza (dischi, indirizzi IP, metadati):

  • Il gruppo di istanze gestite conserva i dischi stateful e gli indirizzi IP e li ricollega, se l'istanza VM viene ricreata o riavviata durante l'aggiornamento.
  • Il gruppo di istanze gestite conserva i metadati stateful, configurati in una configurazione per istanza e li imposta sull'istanza durante l'aggiornamento.

Quando imposti un nuovo modello di istanza, devi definire tutti i dischi specificati nel criterio stateful. Non è consentita l'impostazione di un nuovo modello di istanza in cui viene omesso un disco definito in un criterio stateful. Ciò consente di impedire l'eliminazione accidentale dei dischi stateful.

Per rimuovere i dischi stateful da un gruppo di istanze gestite quando questi dischi sono definiti in un criterio stateful, utilizza la procedura seguente:

  1. Rimuovi la configurazione del disco dal criterio stateful.
  2. (Facoltativo) Scollega i dischi dalle istanze VM se vuoi ancora conservarli.
  3. Implementa un nuovo modello di istanza che non definisce più i dischi.

Non puoi aggiornare i dischi stateful con una nuova immagine perché questi dischi devono essere conservati durante l'aggiornamento e l'aggiornamento a una nuova immagine richiede la creazione di un disco.

Google consiglia di mantenere i dischi di avvio e i dischi con codici binari o file temporanei stateless, mantenendo i dati su dischi stateful. Questa configurazione supporta il seguente comportamento:

  • Puoi aggiornare in modo semplice e automatico il disco di avvio e i dischi con programmi binari a immagini più recenti che contengono nuove versioni e patch di sicurezza. Puoi utilizzare l'aggiornamento automatico o aggiornare manualmente le istanze per ricreare questi dischi stateless, mantenendo i dati intatti su dischi stateful separati.
  • Puoi conservare i dati sui dischi stateful quando implementi altri aggiornamenti alle tue istanze.

Puoi configurare un disco di avvio in modo che sia stateful, ad esempio per ospitare un'applicazione legacy che mantiene programmi binari e dati sullo stesso disco. In questo modo puoi spostare un'applicazione in un gruppo di istanze gestite per sfruttare la riparazione automatica. Tuttavia, in questo scenario devi eseguire gli aggiornamenti del software e del sistema operativo in autonomia, ad esempio aggiornando i singoli pacchetti utilizzando un gestore di pacchetti come apt sui sistemi Debian o utilizzando gli strumenti di gestione della configurazione.

Se hai configurato solo nomi di istanze personalizzati e non hai configurato dischi stateful o metadati, puoi utilizzare gli aggiornamenti in sequenza automatici. Per gli aggiornamenti in sequenza automatici, devi impostare il criterio di sostituzione del programma di aggiornamento su RECREATE. Non puoi utilizzare il metodo di sostituzione SUBSTITUTE per l'aggiornamento automatico delle istanze nei MIG stateful perché questo metodo sostituisce ogni VM esistente con una nuova con nome e stato mantenuto diverso.

In che modo il ridimensionamento del gruppo influisce sullo stato conservato

Ridurre le dimensioni del gruppo

Google sconsiglia di ridurre le dimensioni di un gruppo di istanze gestite stateful perché il gruppo di istanze gestite sceglie le istanze VM per l'eliminazione e potrebbe scegliere VM da conservare. Puoi rimuovere le istanze VM dei gruppi di istanze gestite in modo controllato eliminando istanze specifiche che non ti servono più.

Se riduci le dimensioni del gruppo di istanze gestite, il gruppo elimina tutte le istanze VM aggiuntive insieme agli stati conservati associati. Per evitare che questo accada, puoi configurare il gruppo di istanze gestite in modo da scollegare e conservare i dischi stateful e gli indirizzi IP durante l'eliminazione permanente delle istanze VM. I metadati stateful vengono eliminati insieme allo stato conservato. Per maggiori informazioni, consulta In che modo l'eliminazione di un'istanza influisce sullo stato conservato.

Aumentare le dimensioni del gruppo

Quando aumenti le dimensioni di un gruppo di istanze gestite stateful, il gruppo crea delle VM a partire dal modello di istanza attuale con nomi generati automaticamente (nome istanza di base + suffisso). Puoi visualizzare la configurazione stateful applicata nel preservedStateFromPolicy dell'istanza gestita corrispondente. Dopo che il gruppo di istanze gestite ha creato le istanze, puoi definire metadati stateful e altri dischi stateful o indirizzi IP nelle configurazioni per istanza di queste istanze.

Puoi scegliere nomi delle istanze personalizzati e aumentare le dimensioni dei gruppi creando le istanze manualmente, con la possibilità di eseguire il bootstrap del loro stato fornendo configurazioni per istanza con metadati, indirizzi IP e dischi stateful per ogni istanza.

In che modo l'eliminazione di un'istanza influisce sullo stato conservato

Una VM in un gruppo di istanze gestite viene eliminata definitivamente quando:

  • Se riduci le dimensioni del gruppo, il gruppo di istanze gestite sceglie questa istanza VM per l'eliminazione oppure
  • Elimini l'intero gruppo oppure
  • In particolare, devi eliminare l'istanza dal gruppo di istanze gestite.

Quando una VM viene eliminata definitivamente, il gruppo di istanze gestite elimina anche la configurazione per istanza e l'istanza gestita corrispondenti, inclusa la configurazione dello stato conservato.

L'eliminazione definitiva della VM comporta la perdita di tutte le coppie chiave-valore di metadati stateful.

Puoi configurare se mantenere o eliminare i dischi stateful e gli indirizzi IP al momento dell'eliminazione definitiva dell'istanza impostando il flag autoDelete per ogni risorsa nel criterio stateful o in una configurazione per istanza. Il flag supporta due opzioni:

  • NEVER: (valore predefinito) Il gruppo di istanze gestite non elimina mai il disco.
  • ON_PERMANENT_INSTANCE_DELETION: il gruppo di istanze gestite elimina il disco quando l'istanza viene eliminata definitivamente.

Il gruppo di istanze gestite non elimina le risorse stateful durante la riparazione automatica, l'aggiornamento o la nuova creazione delle istanze.

Nell'esempio seguente, il gruppo di istanze gestite ha una singola VM node-1 con uno stato conservato definito da una configurazione per istanza. Lo stato conservato include due dischi (blu e verde) e metadati id:xyz273. Se ridimensiona il gruppo di istanze gestite a zero, il gruppo di istanze gestite attiva l'eliminazione definitiva dell'istanza, node-1, che causa i seguenti effetti:

  • Il gruppo di istanze gestite elimina l'istanza gestita e la configurazione dello stato conservato.
  • Il gruppo di istanze gestite elimina la configurazione per istanza dell'istanza.
  • Il gruppo di istanze gestite elimina la risorsa effettiva dell'istanza VM.
  • I metadati id:xyz273 sono andati persi perché l'istanza VM e la sua configurazione dello stato conservato sono stati eliminati.
  • Il disco blu stateful viene eliminato perché, per questo disco, la configurazione per istanza ha autoDelete: ON_PERMANENT_INSTANCE_DELETION.
  • Il disco verde stateful è scollegato perché, per questo disco, la configurazione per istanza ha autoDelete:NEVER.

Eliminazione di un'istanza da un gruppo di istanze gestite stateful.

In che modo l'abbandono di un'istanza influisce sullo stato conservato

Quando rinunci a un'istanza VM da un gruppo di istanze gestite, lo stato della VM, inclusi i metadati stateful, gli indirizzi IP e i dischi, rimane sull'istanza al di fuori del gruppo di istanze gestite. Poiché la VM non è più gestita dal gruppo di istanze gestite, questo elimina la configurazione per istanza corrispondente e l'istanza gestita, inclusa la configurazione dello stato conservato dell'istanza.

Nell'esempio seguente, la VM node-1 ha conservato lo stato, definito da un criterio stateful (disco blu) e da una configurazione per istanza (disco verde e metadati id:xyz273). Se abbandoni l'istanza, node-1, dal gruppo di istanze gestite, ecco cosa succede allo stato conservato:

  • L'istanza VM autonoma node-1 conserva il proprio stato: tutti i dischi rimangono collegati, mentre i metadati id:xyz273 rimangono impostati sulla VM.
  • Il gruppo di istanze gestite elimina l'istanza gestita e la configurazione dello stato conservato.
  • Il gruppo di istanze gestite elimina la configurazione per istanza dell'istanza.
  • Il criterio stateful rimane invariato perché è applicabile a tutte le istanze nel gruppo di istanze gestite.

Abbandono di un'istanza da un gruppo di istanze gestite stateful.

In che modo i gruppi a livello di regione gestiscono lo stato conservato

I gruppi di istanze gestite a livello di regione stateful gestiscono gli stati conservati delle loro istanze allo stesso modo dei gruppi di istanze gestite a livello di zona, ad eccezione dei gruppi di istanze gestite a livello di regione che creano istanze VM in più zone:

  • Durante la creazione delle istanze, un gruppo di istanze gestite a livello di regione distribuisce uniformemente le VM tra le zone per massimizzare la disponibilità della tua app in caso di errore a livello di zona.
  • Per le istanze esistenti, un gruppo di istanze gestite a livello di regione stateful non può ridistribuire o spostare automaticamente le VM esistenti tra le zone perché lo stato conservato è archiviato in una zona specifica e non può essere spostato. Per questo motivo, i MIG a livello di regione stateful supportano solo un'impostazione di tipo di ridistribuzione delle istanze su NONE.

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