Questa pagina spiega come configurare le istanze di macchine virtuali (VM) in un gruppo di istanze gestite (MIG) e i metodi che puoi utilizzare per applicare la configurazione alle VM esistenti nel gruppo.
Specifica la configurazione prevista per le VM in un gruppo di istanze gestite utilizzando i seguenti componenti di configurazione delle VM:
- Obbligatorio: modello di istanza
- (Facoltativo) Configurazione di tutte le istanze
- (Facoltativo) Configurazione stateful
Ogni volta che aggiorni la configurazione prevista utilizzando questi componenti, Compute Engine applica automaticamente la configurazione aggiornata alle nuove VM aggiunte al gruppo.
Per applicare una configurazione aggiornata alle VM esistenti, utilizza i metodi descritti in questa pagina:
- Implementazioni automatiche con un budget per le interruzioni e aggiornamenti canary facoltativi dei nuovi modelli
- Aggiornamenti manuali selettivi solo per VM specifiche, per ridurre al minimo le interruzioni
- Ricostruzione di VM specifiche
Puoi anche configurare il gruppo di istanze gestite in modo che applichi la configurazione più recente disponibile alle VM durante le riparazioni. Per ulteriori informazioni, consulta Applicare gli aggiornamenti di configurazione durante le riparazioni.
Se devi solo ridimensionare un gruppo di istanze gestite, consulta la documentazione su come aggiungere o rimuovere VM in un gruppo di istanze gestite. Per scoprire di più sulla configurazione delle funzionalità dei gruppi di istanze gestite, consulta la documentazione relativa alla scalabilità automatica, alla riparazione automatica, al bilanciamento del carico e ai carichi di lavoro stateful.
Prima di iniziare
-
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. 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:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.
-
Componenti di configurazione per le VM in un gruppo di istanze gestite
Le VM in un MIG vengono configurate tramite i seguenti componenti:
Componente | Proprietà | Caso d'uso |
---|---|---|
Modello di istanza | Tipo di macchina, immagine del disco di avvio, etichette, script di avvio e altre proprietà della VM | Obbligatorio: utilizza un modello di istanza per definire le proprietà obbligatorie e facoltative per tutte le VM del gruppo. (Facoltativo) Se vuoi eseguire il test canary di una seconda configurazione VM, puoi aggiungere un secondo modello di istanza al gruppo e applicarlo a un sottoinsieme di VM del gruppo. |
Configurazione di tutte le istanze | Etichette e metadati | (Facoltativo) Utilizza una configurazione per tutte le istanze per eseguire rapidamente l'override delle proprietà del modello di istanza per tutte le VM del gruppo. |
Configurazione stateful | Dischi con stato, indirizzi IP e metadati | (Facoltativo) Se devi supportare un carico di lavoro stateful, Aggiungi la configurazione stateful alle VM del gruppo. |
Se aggiorni una configurazione per il gruppo tramite questi componenti, devi applicarla alle VM esistenti nel gruppo per renderla effettiva.
Metodi per applicare una nuova configurazione alle VM esistenti
Dopo aver aggiornato la configurazione delle VM di un gruppo di istanze gestite, puoi applicare la nuova configurazione alle VM esistenti nel gruppo utilizzando i seguenti metodi:
- Automatico (proattivo): utilizza questo metodo se vuoi che il gruppo di istanze gestite applichi automaticamente nuove configurazioni a tutte o a un sottoinsieme di VM esistenti nel gruppo. Il livello di interruzione delle VM in esecuzione dipende dal criterio di aggiornamento configurato. Puoi utilizzare questo metodo per eseguire l'aggiornamento canary di nuovi modelli di istanze. Per utilizzare questo metodo, imposta il tipo di aggiornamento del MIG su "proattivo".
- Selettivo (opportunistico): utilizza questo metodo se vuoi applicare l'aggiornamento manualmente o se vuoi aggiornare contemporaneamente tutte le VM esistenti nel gruppo. Scegli come target una o tutte le VM da aggiornare all'ultima configurazione. Per utilizzare questo metodo, imposta il tipo di aggiornamento del gruppo di istanze gestite su "opportunistico".
- Ricreo delle VM: applica nuove configurazioni ricreando VM specifiche.
Per saperne di più su come impostare il tipo di aggiornamento di un gruppo di istanze gestite, consulta Configurare un aggiornamento proattivo o opportunistico.
Automatica (proattiva)
Un tipo di aggiornamento automatico è noto anche come tipo di aggiornamento proattivo. Quando impostate il tipo di aggiornamento del gruppo di istanze gestite su proattivo, il gruppo di istanze gestite applica automaticamente le configurazioni aggiornate alle VM, se necessario.
L'impostazione del tipo di aggiornamento del gruppo di istanze gestite su proattivo offre due vantaggi principali:
- L'implementazione di un aggiornamento avviene automaticamente in base alle tue specifiche, senza bisogno di ulteriori input dopo la richiesta iniziale. Puoi specificare la velocità di implementazione, il livello di interruzione del servizio e l'ambito dell'aggiornamento.
- Puoi automatizzare le implementazioni parziali, il che consente di eseguire test canary.
Per scoprire come impostare il tipo di aggiornamento del gruppo di istanze gestite, consulta Configurare un aggiornamento proattivo o opportunistico.
Per ulteriori informazioni sugli implementazioni automatiche, consulta la pagina relativa all'applicazione automatica degli aggiornamenti di configurazione delle VM in un gruppo di istanze gestite.
Selettiva (opportunistica)
Un tipo di aggiornamento selettivo è noto anche come tipo di aggiornamento opportunistico. Quando impostate il tipo di aggiornamento del gruppo di istanze gestite su opportunistico, il gruppo di istanze gestite applica le nuove configurazioni alle VM esistenti solo quando sceglite in modo selettivo le VM specifiche da aggiornare.
L'impostazione del tipo di aggiornamento del gruppo di istanze gestite su opportunistico offre i seguenti vantaggi:
- Puoi selezionare le VM da aggiornare.
- Puoi controllare la tempistica e la sequenza degli aggiornamenti.
- Puoi utilizzare l'interfaccia a riga di comando gcloud o REST per aggiornare immediatamente tutte le istanze.
In alcuni scenari, un tipo di aggiornamento selettivo è utile perché non vuoi causare instabilità al sistema, se possibile. Ad esempio, considera quanto segue:
Una delle VM nel tuo gruppo di istanze gestite si arresta e deve essere riparata, ma non vuoi che la relativa configurazione venga modificata. Se imposti il tipo di aggiornamento del MIG su opportunistico e non applichi forzatamente gli aggiornamenti durante le riparazioni, Compute Engine ripara la VM utilizzando la stessa configurazione utilizzata per crearla, anche se il modello di istanza originale non esiste più.
Hai un gruppo di istanze gestite con scalabilità automatica e vuoi applicare un aggiornamento non critico senza alcuna urgenza. Per assicurarti che Compute Engine non elimini le VM esistenti per applicare l'aggiornamento, imposta il tipo di aggiornamento del gruppo di istanze gestite su opportunistico. Quando riduci le dimensioni, il gestore della scalabilità automatica termina preferenzialmente le VM con la vecchia configurazione. Quando il gruppo esegue lo scale out, vengono create VM con la configurazione più recente.
Per scoprire come impostare il tipo di aggiornamento del gruppo di istanze gestite, consulta Configurare un aggiornamento proattivo o opportunistico.
Per ulteriori informazioni sull'aggiornamento selettivo delle VM, consulta Applicare in modo selettivo gli aggiornamenti della configurazione delle VM in un gruppo di istanze gestite.
Ricostruzione delle VM
Puoi ricreare qualsiasi VM in un gruppo di istanze gestite. In questo caso, il gruppo di istanze gestite applica qualsiasi configurazione aggiornata che non è ancora stata applicata alla VM. Per ulteriori informazioni, consulta la pagina relativa alla ricreazione delle VM in un gruppo di istanze gestite.
Configurare un aggiornamento proattivo o opportunistico
Per applicare automaticamente nuove configurazioni alle VM esistenti, imposta il tipo di aggiornamento del gruppo di istanze gestite su "proattivo". Per applicare nuove configurazioni alle VM esistenti solo quando selezioni una VM da aggiornare, imposta il tipo di aggiornamento del gruppo di istanze gestite su "opportunistico".
Utilizza la console Google Cloud, l'interfaccia a riga di comando Google Cloud o REST.
Autorizzazioni richieste per questa attività
Per eseguire questa attività, devi disporre delle seguenti autorizzazioni:
- Per i MIG zonali, tutte le autorizzazioni necessarie per chiamare il metodo
instanceGroupManagers.patch
- Per i gruppi di istanze gestite a livello di regione, tutte le autorizzazioni necessarie per chiamare il metodo
regionInstanceGroupManagers.patch
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Seleziona il gruppo di istanze gestite che vuoi aggiornare.
Nella parte superiore della pagina, fai clic su Aggiorna VM.
Per impostare un modello diverso per il gruppo, in Nuovo modello, seleziona il modello di istanza che vuoi utilizzare.
In Aggiorna configurazione, scegli l'aggiornamento automatico o selettivo.
Utilizza il comando rolling-action start-update
e imposta il flag --type
su opportunistic
o proactive
.
gcloud compute instance-groups managed rolling-action start-updateINSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --type=TYPE
Puoi anche utilizzare il comando beta update
e includere il flag --update-policy-type
.
gcloud beta compute instance-groups managed updateINSTANCE_GROUP_NAME \ --update-policy-type=TYPE
Sostituisci quanto segue:
INSTANCE_GROUP_NAME
: il nome del gruppoNEW_TEMPLATE
: il nome del nuovo modello per il gruppoTYPE
: il tipo di aggiornamento,opportunistic
oproactive
Chiama il metodo patch
su una risorsa MIG di zona o regionale.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /regions/REGION /instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "type": "TYPE " # Choose an opportunistic or proactive update }, "versions": [{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE ", }] }
Sostituisci quanto segue:
PROJECT_ID
: il progetto in cui esiste il gruppo di istanze gestite.REGION
: la regione in cui si trova il gruppo di istanze gestite. Per un gruppo di istanze gestite a livello di zona, sostituisciregions/REGION
conzones/ZONE
.INSTANCE_GROUP_NAME
: il nome del gruppo.NEW_TEMPLATE
: il nome del nuovo modello per il gruppo.TYPE
: il tipo di aggiornamento,OPPORTUNISTIC
oPROACTIVE
.
Per scoprire di più su come impostare un nuovo modello e applicarlo alle VM nuove ed esistenti in un gruppo di istanze gestite, consulta le seguenti pagine:
- Applicare automaticamente gli aggiornamenti della configurazione delle VM in un gruppo di istanze gestite
- Applicare in modo selettivo gli aggiornamenti della configurazione delle VM in un gruppo di istanze gestite
Controllare il tipo di criterio di aggiornamento del gruppo
Puoi visualizzare il tipo di criterio di aggiornamento attualmente configurato del tuo gruppo di istanze gestite ("opportunistico" o"proattivo ") e altre impostazioni del criterio di aggiornamento utilizzando l'interfaccia a riga di comando gcloud o REST.
Utilizza il
comando describe
e includi il flag --format
per elencare solo le impostazioni updatePolicy
.
gcloud beta compute instance-groups managed describeINSTANCE_GROUP_NAME \ --format="(updatePolicy)"
Invia una richiesta GET
a un
gruppo di istanze gestite o
regionale
e controlla il campo updatePolicy
.
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /regions/REGION /instanceGroupManagers/INSTANCE_GROUP_NAME
Per modificare il tipo di criterio, consulta Configurare un aggiornamento proattivo o opportunistico.
Aggiornamenti per le VM sospese e arrestate
Se hai pool di VM sospese e arrestate in un gruppo di istanze gestite, puoi aggiornare in modo selettivo (opportunistico) le VM sospese o arrestate come faresti con le altre VM in esecuzione. Se configuri gli aggiornamenti automatici (proattivi), il gruppo di istanze gestite aggiorna le VM nel seguente ordine:
- VM in esecuzione, sospese e arrestate
- VM con stato
SUSPENDING
oSTOPPING
Per un aggiornamento automatico, il gruppo di istanze gestite calcola il picco massimo e il numero massimo di istanze non disponibili in base solo al numero target di VM in esecuzione e non prende in considerazione le VM nel pool di standby.
Se l'aggiornamento automatico richiede la sostituzione delle VM nel gruppo, il gruppo di istanze gestite:
- Consente di eliminare le VM sospese e arrestate.
- Crea nuove VM con il nuovo modello di istanza.
- Esegue la procedura di inizializzazione.
- Sospende o arresta le VM.
Se l'aggiornamento automatico richiede solo l'aggiornamento o il riavvio delle VM nel gruppo, il gruppo di istanze gestite esegue le seguenti operazioni:
- Ripristina o avvia le VM.
- Esegue l'aggiornamento delle VM quando sono in esecuzione.
- Esegue la procedura di inizializzazione.
- Sospende o arresta le VM.
Aggiornamenti canary
Se vuoi avviare gli aggiornamenti canary in un gruppo di istanze gestite con VM sospese o arrestate, si applica quanto segue:
- Nella modalità di criterio di standby
manual
, il gruppo di istanze gestite aggiorna solo le VM in esecuzione in base al numero o alla percentuale di VM a cui vuoi applicare l'aggiornamento. Le VM sospese e arrestate rimangono nelle versioni precedenti. - Nella modalità di criterio di standby
scale-out-pool
, non puoi avviare un aggiornamento canary nel gruppo di istanze gestite.
Relazione tra i campi versions
e instanceTemplate
Se utilizzi REST, ti consigliamo di utilizzare i campi instanceGroupManagers.versions
e regionInstanceGroupManagers.versions
per configurare i modelli di istanze per i MIG zonali e regionali.
Il campo precedente instanceTemplate
si sovrappone per funzionalità al campo versions
perché entrambi i campi ti consentono di specificare il modello di istanza utilizzato dal gruppo di istanze gestite per creare le VM. Tuttavia, solo il campo versions
consente di specificare una configurazione avanzata con due modelli (canary).
Per la compatibilità con le versioni precedenti, le MIG continuano a supportare l'impostazione del campo instanceTemplate
di primo livello, anche se ti consigliamo di passare all'utilizzo solo del campo versions
. L'utilizzo contemporaneamente del campo di primo livello instanceTemplate
e del campo versions
può portare ad ambiguità e confusione.
Se specifichi sia il campo instanceTemplate
sia il campo versions
quando
chiamai il metodo update()
o patch()
, sono possibili tre risultati:
Imposti entrambi i campi sullo stesso valore.
Questa è una richiesta valida. In questo caso, non viene creata alcuna ambiguità e il nuovo modello di istanza viene applicato al gruppo di istanze gestite.
Ad esempio, nella richiesta seguente, i campi di primo livello
instanceTemplate
eversions
specificano lo stesso modello di istanza, diverso da quello corrente esistente, pertanto il gruppo di istanze gestite viene aggiornato al nuovo modello di istanza:{ "instanceTemplate": "global/instanceTemplates/
NEW_TEMPLATE ", "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE " } ], "updatePolicy": { "type": "PROACTIVE" } }Hai impostato entrambi i campi su valori che non corrispondono, ma solo un valore differisce dal modello di istanza corrente nel MIG.
Questa è una richiesta valida. Il campo diverso dall'impostazione corrente viene considerato come il valore previsto. Ad esempio, chiami il metodo
update()
e fornisci entrambi i campi, ma viene aggiornato solo un campo:{ "instanceTemplate": "global/instanceTemplates/
CURRENT_TEMPLATE ", "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE " } ], "updatePolicy": { "type": "PROACTIVE" } }Hai impostato entrambi i campi su valori che non corrispondono e entrambi i valori differiscono dal modello di istanza corrente nel MIG.
Questa impostazione non è valida e restituisce un errore perché non è presente un'intenzione chiara.
{ "instanceTemplate": "global/instanceTemplates/
NEW_TEMPLATE ", "versions": [ { "instanceTemplate": "global/instanceTemplates/A_DIFFERENT_NEW_TEMPLATE " } ], "updatePolicy": { "type": "PROACTIVE" } }
Il campo versions
, il campo instanceTemplate
e il metodo get()
Se specifichi un solo modello di istanza, tramite il campo instanceTemplate
di primo livello o tramite il campo versions
o tramite entrambi, il metodo get()
restituisce entrambi i campi nella risposta. In questo modo, il nuovo campo versions
è compatibile con le versioni precedenti. Se specifichi un singolo modello di istanza in uno di questi campi, non viene apportata alcuna modifica al valore restituito dal metodo get()
nel campo instanceTemplate
.
Se per il campo versions
sono specificati due modelli di istanze, il metodo get()
restituisce un campo instanceTemplate
di primo livello vuoto. Non è possibile esprimere in modo inequivocabile una configurazione di modello di canary a due istanze nel campo di primo livello instanceTemplate
, pertanto il campo non viene utilizzato durante un aggiornamento del canary.
Il campo versions
e il metodo setInstanceTemplate()
Per la compatibilità con le versioni precedenti, il metodo setInstanceTemplate()
si comporta come in precedenza, consentendoti di modificare il modello utilizzato dal gruppo di istanze gestite per creare le VM. Quando chiami questo metodo, il campo versions
viene sostituito con il modello di istanza specificato dal metodo setInstanceTemplate()
.
Il metodo setInstanceTemplate()
imposta anche updatePolicy
su
OPPORTUNISTIC
. In questo modo, il gruppo di istanze gestite non eseguirà il deployment attivo di un modello di istanza non specificato esplicitamente nel campo versions
.
Passaggi successivi
- Scopri di più su come implementare automaticamente un nuovo modello di istanza in un gruppo di istanze gestite.
- Scopri di più sull'aggiornamento selettivo delle VM in un gruppo di istanze gestite.
- Visualizza le informazioni sul gruppo di istanze gestite e sulle relative VM.