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.
Devi specificare la configurazione prevista per le VM in un gruppo di istanze gestite utilizzando il comando seguenti componenti di configurazione 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 già fatto, configura l'autenticazione.
Autenticazione è
Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione
Compute Engine come segue.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Automatico (proattivo): utilizza questo metodo se vuoi che il gruppo di istanze gestite applicare automaticamente le nuove configurazioni a tutti o a un sottoinsieme di a quelle 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 gruppo di istanze gestite su "proattiva".
- Selettivo (opportunistico): utilizza questo metodo se vuoi applicare la aggiornare manualmente o se vuoi aggiornare tutte le VM esistenti nel gruppo una volta sola. 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".
- Ricreazione di VM: applica nuove configurazioni ricreando VM specifiche.
- L'implementazione di un aggiornamento avviene automaticamente in base alle tue specifiche, senza la necessità 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.
- Puoi selezionare le VM da aggiornare.
- Puoi controllare la tempistica e la sequenza degli aggiornamenti.
- Puoi utilizzare gcloud CLI o REST per aggiornare tutti di Compute Engine immediatamente.
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 gruppo di istanze gestite 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 a scalabilità automatica e vuoi applicare un aggiornamento non critico senza dell'urgenza. Per assicurarti che Compute Engine non distruggi alle VM esistenti per applicare l'aggiornamento, imposta il tipo di aggiornamento del gruppo di istanze gestite su opportunistico. Al momento dello scale in, il gestore della scalabilità automatica termina preferibilmente le VM con configurazione. Quando il gruppo fa lo scale out, crea VM con configurazione.
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 tra automatico o selettivo aggiornamento.
INSTANCE_GROUP_NAME
: il nome del gruppoNEW_TEMPLATE
: il nome del nuovo modello per gruppoTYPE
: il tipo di aggiornamento,opportunistic
oproactive
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
.- Applicare automaticamente gli aggiornamenti alla 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
- VM in esecuzione, sospese e arrestate
- VM con stato
SUSPENDING
oSTOPPING
- Elimina le VM sospese e arrestate.
- Crea nuove VM con il nuovo modello di istanza.
- Esegue la procedura di inizializzazione.
- Sospende o arresta le VM.
- Ripristina o avvia le VM.
- Esegue l'aggiornamento delle VM quando sono in esecuzione.
- Esegue la procedura di inizializzazione.
- Sospende o arresta le VM.
- 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. - In modalità del criterio di standby
scale-out-pool
, non puoi avviare una versione canary nel gruppo di istanze gestite. Hai impostato lo stesso valore per entrambi i campi.
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 valori
instanceTemplate
di primo livello e Il campoversions
specifica lo stesso modello di istanza, che è diverso dal modello attuale esistente, in modo che il gruppo di istanze gestite venga aggiornato al nuovo modello di istanza:{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE" } ], "updatePolicy": { "type": "PROACTIVE" } }
Imposta entrambi i campi su valori che non corrispondono, ma con un solo valore è diverso dall'attuale modello di istanza nel gruppo di istanze gestite.
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" } }
Imposti entrambi i campi su valori che non corrispondono rispetto all'attuale modello di istanza nel gruppo di istanze gestite.
Questa impostazione non è valida e restituisce un errore perché non è chiaro l'intento.
{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "versions": [ { "instanceTemplate": "global/instanceTemplates/A_DIFFERENT_NEW_TEMPLATE" } ], "updatePolicy": { "type": "PROACTIVE" } }
- 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 informazioni sul tuo gruppo di istanze gestite e sulle relative VM.
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, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Componenti di configurazione per le VM in un gruppo di istanze gestite
Le VM in un gruppo di istanze gestite devono essere 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 gli attributi obbligatori e per tutte le VM nel gruppo.
(Facoltativo) Se vuoi eseguire il test canary di una seconda VM puoi aggiungere al gruppo un secondo modello di istanza e applicarlo a un sottoinsieme delle VM nel 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 una carico di lavoro stateful, la configurazione stateful alle VM nel gruppo. Se aggiorni una configurazione per il gruppo tramite questi componenti, deve applicare la configurazione aggiornata alle VM esistenti nel gruppo per per rendere effettiva la configurazione aggiornata.
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:
Per saperne di più sull'impostazione del tipo di aggiornamento di un gruppo di istanze gestite, consulta Configura un aggiornamento proattivo o opportunistico.
Automatica (proattiva)
Un tipo di aggiornamento automatico è anche noto 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.
Impostare il tipo di aggiornamento del gruppo di istanze gestite su proattivo offre due vantaggi principali:
Per scoprire come impostare il tipo di aggiornamento del gruppo di istanze gestite, consulta Configura un aggiornamento proattivo o opportunistico.
Per saperne di più sulle implementazioni automatiche, Applica automaticamente gli aggiornamenti della configurazione delle VM in un gruppo di istanze gestite.
Selettivo (opportunistico)
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 scegliete come target VM specifiche da aggiornare.
L'impostazione del tipo di aggiornamento del gruppo di istanze gestite su opportunistico offre i seguenti vantaggi:
In alcuni scenari, un tipo di aggiornamento selettivo è utile perché non si desidera causare instabilità del sistema, se è possibile evitarle. Ad esempio, considera quanto segue:
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 Applica 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.
Imposta un aggiornamento proattivo o opportunistico
Per applicare automaticamente le nuove configurazioni alle VM esistenti, imposta l'aggiornamento del gruppo di istanze gestite digiti su "proactive". Per applicare nuove configurazioni alle VM esistenti solo quando seleziona una VM da aggiornare, imposta il tipo di aggiornamento del gruppo di istanze gestite su "opportunistico".
Utilizza la console Google Cloud, Google Cloud CLI o REST.
Console
gcloud
Utilizza il comando
rolling-action start-update
e imposta il flag--type
suopportunistic
oproactive
.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --type=TYPE
Puoi utilizzare anche comando beta
update
e includi il flag--update-policy-type
.gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \ --update-policy-type=TYPE
Sostituisci quanto segue:
REST
Chiama il metodo
patch
su un a livello di zona o regionale risorsa MIG.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:
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:
Controllare il tipo di criterio di aggiornamento del gruppo
Puoi visualizzare il tipo di criterio di aggiornamento attualmente configurato per il tuo gruppo di istanze gestite ("opportunistico" o "proattivo") e altre aggiornare le impostazioni dei criteri mediante gcloud CLI o REST.
gcloud
Utilizza la Comando
describe
e includi il flag--format
per elencare solo le impostazioni diupdatePolicy
.gcloud beta compute instance-groups managed describe INSTANCE_GROUP_NAME \ --format="(updatePolicy)"
REST
Effettua una richiesta
GET
su un a livello di zona o regionale gruppo di istanze gestite e controlla il campoupdatePolicy
.GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
Per modificare il tipo di criterio, consulta Configura un aggiornamento proattivo o opportunistico.
Aggiornamenti per le VM sospese e arrestate
Se hai sospeso e arrestato i pool di VM in un gruppo di istanze gestite, puoi aggiornamento (opportunistico) di VM sospese o arrestate come faresti con le altre delle VM in esecuzione. Se configuri gli aggiornamenti automatici (proattivi), il gruppo di istanze gestite aggiorna le VM nel seguente ordine:
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 svolge le seguenti operazioni:
Se l'aggiornamento automatico richiede solo l'aggiornamento o il riavvio delle VM in il gruppo, il gruppo di istanze gestite esegue le seguenti operazioni:
Aggiornamenti canary
Se vuoi avviare gli aggiornamenti canary in un gruppo di istanze gestite con VM sospese o arrestate, si applica quanto segue:
Relazione tra i campi
versions
einstanceTemplate
Se utilizzi REST, ti consigliamo di usare
instanceGroupManagers.versions
eregionInstanceGroupManagers.versions
per configurare i modelli di istanza per i gruppi di istanze gestite a livello di zona e di regione.Il campo precedente
instanceTemplate
si sovrappone per funzionalità al campoversions
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 campoversions
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 campoversions
. L'utilizzo contemporaneamente del campo di primo livelloinstanceTemplate
e del campoversions
può portare ad ambiguità e confusione.Se specifichi sia il campo
instanceTemplate
che il campoversions
quando chiamando il metodoupdate()
opatch()
, ci sono tre possibili risultati:Il campo
versions
, il campoinstanceTemplate
e il metodoget()
Se specifichi un solo modello di istanza, tramite lo strumento di primo livello
instanceTemplate
o tramite il campoversions
o tramite entrambi, Il metodoget()
restituisce entrambi i campi nella risposta. Questo rende il nuovo Campoversions
compatibile con le versioni precedenti. Purché specifichi una singola istanza in uno di questi campi, le modifiche apportate aget()
viene restituito nel campoinstanceTemplate
.Se per il campo
versions
sono specificati due modelli di istanze, il metodoget()
restituisce un campoinstanceTemplate
di primo livello vuoto. Non c'è modo di esprimere in modo inequivocabile una configurazione canary a due istanze il campoinstanceTemplate
di primo livello, quindi non viene utilizzato durante una versione canary aggiornamento.Il campo
versions
e il metodosetInstanceTemplate()
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, ilversions
campo viene sostituito con il modello di istanza specificato dalsetInstanceTemplate()
metodo.Il metodo
setInstanceTemplate()
imposta ancheupdatePolicy
suOPPORTUNISTIC
. Questo impedisce al gruppo di istanze gestite di eseguire attivamente il deployment di un modello di istanza non specificato esplicitamente nel campoversions
.Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-10-14 UTC.
-