Questo documento descrive come applicare automaticamente gli aggiornamenti della configurazione alle istanze di macchine virtuali (VM) in un gruppo di istanze gestite (MIG).
Compute Engine gestisce le VM in un MIG in base ai componenti di configurazione che utilizzi: modello di istanza, configurazione facoltativa per tutte le istanze e configurazione stateful facoltativa.
Ogni volta che aggiorni la configurazione delle VM di un MIG modificando questi componenti, Compute Engine applica automaticamente la configurazione aggiornata alle nuove VM aggiunte al gruppo.
Per applicare una configurazione aggiornata alle VM esistenti, puoi configurare un aggiornamento automatico, noto anche come tipo di aggiornamento proattivo. Il MIG esegue automaticamente il rollout degli aggiornamenti della configurazione a tutte le VM del gruppo o a un sottoinsieme. Puoi controllare la velocità di deployment, il livello di interruzione del servizio e, utilizzando un aggiornamento canary, il numero di istanze che il MIG aggiorna con la nuova configurazione. Dopo aver specificato la nuova configurazione, non devi fornire ulteriori input e l'aggiornamento viene completato automaticamente.
In alternativa, se vuoi applicare in modo selettivo una nuova configurazione solo alle nuove istanze o a istanze specifiche in un MIG, consulta Applica in modo selettivo gli aggiornamenti della configurazione delle VM in un MIG. Per aiutarti a decidere, consulta la pagina Metodi per applicare una nuova configurazione alle VM esistenti.
Prima di iniziare
- Se stai aggiornando un MIG stateful, consulta Applicazione, visualizzazione e rimozione della configurazione stateful nei MIG.
-
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 di 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:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Se hai un gruppo di istanze gestite stateful e vuoi utilizzare gli aggiornamenti in sequenza automatici, devi mantenere i nomi delle istanze quando le sostituisci o, in modo equivalente, impostare il metodo di sostituzione su
RECREATE
. Gli aggiornamenti sono basati sull'intent. Quando invii la richiesta di aggiornamento iniziale, l'API Compute Engine restituisce una risposta riuscita per confermare che la richiesta è valida, ma ciò non indica che l'aggiornamento è andato a buon fine. Devi controllare lo stato del gruppo per determinare se l'aggiornamento è stato implementato correttamente.
L'API Instance Group Updater è un'API dichiarativa. L'API prevede che una richiesta specifichi la configurazione del MIG post-aggiornamento desiderata, anziché una chiamata di funzione esplicita.
Gli aggiornamenti automatici supportano fino a due versioni del modello di istanza nel tuo MIG. Ciò significa che puoi specificare due versioni diverse del modello di istanza per il tuo gruppo, il che è utile per eseguire aggiornamenti canary.
Nella console Google Cloud , vai alla pagina Gruppi di istanze.
Seleziona il MIG che vuoi aggiornare.
Fai clic su Aggiorna VM.
In Nuovo modello, fai clic sull'elenco a discesa e seleziona il nuovo modello da aggiornare. La dimensione target è impostata automaticamente su 100%, a indicare che tutte le istanze verranno aggiornate.
In Configurazione aggiornamento, espandi il menu di selezione e seleziona Automatico come Tipo di aggiornamento. Lascia i valori predefiniti per le altre opzioni.
Fai clic su Aggiorna VM per avviare l'aggiornamento.
INSTANCE_GROUP_NAME
: il nome del MIGINSTANCE_TEMPLATE_URL
: l'URL del modello di istanza che vuoi utilizzare per creare le VM nel MIG. L'URL può contenere l'ID o il nome del modello di istanza. Specifica uno dei seguenti valori:- Per un template di istanza regionale:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
- Per un template di istanza globale:
INSTANCE_TEMPLATE_ID
- Per un template di istanza regionale:
ZONE
: per i MIG a livello di zona, fornisci la zonaREGION
: per i MIG a livello di regione, fornisci la regione- Aggiornamenti automatici o proattivi
- Aggiornamenti selettivi o opportunistici
- Lo stato dell'istanza è
RUNNING
. - Se il controllo di integrità è abilitato, quando il controllo di integrità restituisce
HEALTHY
. - Attende fino al periodo di tempo specificato dal valore
autohealingPolicies.initialDelaySec
del MIG prima che il controllo di integrità venga restituito comeHEALTHY
. - Quindi, attende il periodo di tempo specificato da
minReadySec
. SUBSTITUTE
(valore predefinito). Sostituisce più rapidamente le istanze VM durante gli aggiornamenti perché le nuove VM vengono create prima che quelle precedenti vengano arrestate. Tuttavia, i nomi delle istanze non vengono conservati perché sono ancora in uso dalle istanze precedenti.RECREATE
. Conserva i nomi delle istanze durante un aggiornamento. Compute Engine rilascia il nome dell'istanza quando la vecchia VM viene arrestata. Poi Compute Engine crea una nuova istanza utilizzando lo stesso nome. Per utilizzare questa modalità, devi impostaremaxSurge
su0
.- Nella console Google Cloud , vai alla pagina Gruppi di istanze.
- Seleziona il gruppo di istanze gestite da aggiornare.
- Fai clic su Aggiorna VM.
- Fai clic su Aggiungi un secondo modello e scegli il nuovo modello di istanza per il canary.
- In Dimensione target, inserisci la percentuale o il numero fisso di istanze che vuoi utilizzare per il canary del nuovo modello di istanza.
- Se vuoi, puoi configurare altre opzioni di aggiornamento.
- Fai clic su Aggiorna VM per avviare l'aggiornamento.
INSTANCE_GROUP_NAME
: il nome del gruppo di istanze.CURRENT_INSTANCE_TEMPLATE
: il modello di istanza attualmente in esecuzione nel gruppo di istanze.NEW_TEMPLATE
: il nuovo template che vuoi testare.SIZE
: il numero o la percentuale di istanze a cui vuoi applicare questo aggiornamento. Devi applicare la proprietàtarget-size
al modello--canary-version
. Puoi impostare una percentuale solo se il gruppo contiene almeno 10 istanze.ZONE
: per i MIG a livello di zona, fornisci la zona.REGION
: per i MIG a livello di regione, fornisci la regione.NEW_TEMPLATE
: il nome del nuovo template che vuoi testare.NUMBER|PERCENTAGE
: il numero fisso o la percentuale di istanze per il test canary di questo aggiornamento. Puoi impostare una percentuale solo se il gruppo contiene almeno 10 istanze. In caso contrario, fornisci un numero fisso.CURRENT_INSTANCE_TEMPLATE
: il modello di istanza corrente in esecuzione nel gruppo.- Nella console Google Cloud , vai alla pagina Gruppi di istanze.
- Seleziona il gruppo di istanze gestite da aggiornare.
- Fai clic su Aggiorna VM.
- In Nuovo modello, aggiorna la dimensione di destinazione del modello canary a 100% per eseguire il roll forward del modello a tutte le tue istanze. In alternativa, puoi sostituire il modello principale con il modello canary e rimuovere il secondo campo del modello.
- Fai clic su Aggiorna VM per avviare l'aggiornamento.
- Per verificare se tutte le VM hanno raggiunto la versione del modello di destinazione, visualizza lo stato del gruppo.
- Per verificare che VM specifiche abbiano raggiunto la versione del modello di destinazione, visualizza le azioni attuali sulle istanze.
- Per i MIG stateful, vedi anche Verifica se le configurazioni per istanza sono state applicate.
- Nella console Google Cloud , vai alla pagina Gruppi di istanze.
- Seleziona il gruppo di istanze gestite che vuoi monitorare. La pagina Panoramica del gruppo mostra il modello utilizzato da ogni istanza.
- Per visualizzare i dettagli, fai clic sulla scheda Dettagli.
- In Modello di istanza, puoi visualizzare il numero attuale e di destinazione di istanze per ogni modello di istanza, nonché i parametri di aggiornamento.
status.versionTarget.isReached
impostato sutrue
indica che tutte le istanze VM sono state o sono in fase di creazione utilizzando la versione di destinazione.status.versionTarget.isReached
impostato sufalse
indica che almeno una VM non utilizza ancora la versione di destinazione. oppure, nel caso di un aggiornamento canary,false
indica che il numero di VM che utilizzano una versione di destinazione non corrisponde alle dimensioni target.- Nessuna delle istanze del MIG è in fase di modifica di alcun tipo e il valore
currentAction
di tutte le istanze èNONE
. - Non sono previste modifiche imminenti per le istanze del MIG.
- Il MIG stesso non è in fase di modifica.
- Invio di una richiesta di implementazione di un nuovo template di istanza
- Invio di una richiesta di creazione, eliminazione, ridimensionamento o aggiornamento delle istanze nel MIG
- Richiesta di ridimensionamento del MIG da parte di un gestore della scalabilità automatica
- È in corso la sostituzione di una o più istanze non integre nel MIG da parte di una risorsa di riparazione automatica
- È in corso la redistribuzione di alcune istanze di un MIG a livello di regione
ABANDONING
. L'istanza è in fase di rimozione dal MIG.CREATING
. L'istanza è in fase di creazione.CREATING_WITHOUT_RETRIES
. L'istanza è in fase di creazione senza tentativi di ripetizione. Se l'istanza non viene creata al primo tentativo, il MIG non tenta nuovamente di sostituirla.DELETING
. L'istanza è in fase di eliminazione.RECREATING
. L'istanza è in fase di sostituzione.REFRESHING
. L'istanza viene rimossa dai propri pool di destinazione correnti e aggiunta nuovamente all'elenco dei pool di destinazione correnti (l'elenco potrebbe essere uguale o diverso rispetto ai pool di destinazione esistenti).RESTARTING
. L'istanza è in fase di riavvio per mezzo dei metodistop
estart
.RESUMING
. L'istanza è in fase di ripristino dopo essere stata sospesa.STARTING
. L'istanza è in fase di avvio dopo essere stata arrestata.STOPPING
. L'istanza è in fase di arresto.SUSPENDING
. L'istanza è in fase di sospensioneVERIFYING
. L'istanza è stata creata ed è in corso la verifica.NONE
. Sull'istanza non risulta alcuna azione in fase di esecuzione.Effettua una richiesta per determinare quante istanze sono state aggiornate:
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]
gcloud CLI restituisce una risposta che include un elenco delle istanze del gruppo e i relativi stati attuali:
NAME ZONE STATUS HEALTH_STATE ACTION INSTANCE_TEMPLATE VERSION_NAME LAST_ERROR vm-instances-9pk4 us-central1-f RUNNING HEALTHY NONE example-new-template vm-instances-j1h8 us-central1-f RUNNING HEALTHY NONE example-old-template vm-instances-ngod us-central1-f STAGING UNKNOWN CREATING example-new-template
In questo esempio, due istanze sono già state aggiornate.
Successivamente, effettua una richiesta per eseguire un nuovo aggiornamento, ma passa il numero di istanze già aggiornate come dimensione target:
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version template=OLD_INSTANCE_TEMPLATE \ --canary-version template=NEW_INSTANCE_TEMPLATE,target-size=2 \ [--zone=ZONE | --region=REGION]
Per Updater, questo aggiornamento risulta completato, quindi non vengono aggiornate altre istanze, interrompendo di fatto l'aggiornamento.
- Avvia un aggiornamento canary anziché un aggiornamento completo.
- Imposta un valore elevato per
minReadySec
. L'impostazione di questo valore fa sì che lo strumento di aggiornamento attenda questo numero di secondi prima di considerare l'istanza aggiornata correttamente e procedere con l'istanza successiva. - Abilita il controllo di integrità per fare in modo che lo strumento di aggiornamento attenda l'avvio dell'applicazione e segnali un segnale integro prima di considerare l'istanza aggiornata correttamente e procedere con l'istanza successiva.
- Imposta valori bassi per
maxUnavailable
emaxSurge
. In questo modo, viene aggiornato solo un numero minimo di istanze alla volta. - Aggiorna selettivamente le istanze in un MIG anziché utilizzare un aggiornamento automatico.
Azione minima: utilizza questa opzione per ridurre al minimo le interruzioni o per applicare un'azione più invasiva del necessario.
- Per limitare al massimo le interruzioni, imposta l'azione minima su
REFRESH
. Se l'aggiornamento richiede un'azione più invasiva, Compute Engine esegue l'azione necessaria per eseguire l'aggiornamento. - Per applicare un'azione più distruttiva del necessario, imposta l'azione
minima su
RESTART
oREPLACE
. Ad esempio, Compute Engine non deve riavviare una VM per modificarne i metadati. Tuttavia, se la tua applicazione legge i metadati dell'istanza solo quando una VM viene riavviata, puoi impostare l'azione minima suRESTART
per rilevare le modifiche ai metadati.
- Per limitare al massimo le interruzioni, imposta l'azione minima su
Azione più invasiva consentita: utilizza questa opzione per impedire un aggiornamento se richiede un'interruzione più lunga di quanto tu possa permetterti. Se l'aggiornamento richiede un'azione più invasiva di quella impostata con questo flag, la richiesta di aggiornamento non va a buon fine. Ad esempio, se imposti l'azione consentita più invasiva su
RESTART
, un tentativo di aggiornamento dell'immagine del disco di avvio non va a buon fine perché l'aggiornamento richiede la sostituzione dell'istanza, un'azione più invasiva di un riavvio.- L'azione minima predefinita è
REPLACE
. Se vuoi evitare interruzioni non necessarie, imposta l'azione minima in modo che sia meno invasiva. - L'azione più invasiva consentita per impostazione predefinita è
REPLACE
. Se non riesci a tollerare un'interruzione di questo tipo, imposta l'azione consentita più invasiva in modo che sia meno invasiva. - Risolvere le perdite di memoria.
- Riavvia l'applicazione in modo che possa essere eseguita da un computer pulito.
- Applica una sostituzione periodica come best practice per testare le istanze.
- Aggiorna l'immagine del sistema operativo dell'istanza o esegui di nuovo gli script di avvio per aggiornare il software.
- Se
updatePolicy.type
èOPPORTUNISTIC
, il MIG cambia il tipo inAUTOMATIC
. - Il MIG aggiorna il
versions.name
di ogni istanza. Nella console Google Cloud , vai alla pagina Gruppi di istanze.
Seleziona il gruppo di istanze gestite che contiene le VM da riavviare o sostituire.
Fai clic su Riavvia/Sostituisci le VM.
In Operazione, seleziona Riavvia o Sostituisci.
- Se selezioni Riavvia, modifica i seguenti parametri o utilizza i valori predefiniti:
- Se selezioni Sostituisci, procedi nel seguente modo:
- Scegli se vuoi conservare i nomi delle istanze quando le sostituisci.
- Specifica i seguenti parametri o utilizza i valori predefiniti:
Per avviare l'operazione, fai clic su Riavvia VM o Sostituisci VM.
Per riavviare tutte le istanze in un MIG a livello di zona, una alla volta:
gcloud compute instance-groups managed rolling-action restart INSTANCE_GROUP_NAME \ --zone=ZONE
Per sostituire tutte le istanze in un MIG a livello di zona, una alla volta:
gcloud compute instance-groups managed rolling-action replace INSTANCE_GROUP_NAME \ --zone=ZONE
- Per un MIG a livello di regione, utilizza il metodo
regionInstanceGroupManagers.patch
. - Per un MIG a livello di zona, utilizza il metodo
instanceGroupManagers.patch
. Imposta il campo
updatePolicy.minimalAction
suRESTART
oREPLACE
.Imposta il campo
versions.name
. Ad esempio, specifica un numero di versione con un timestamp:v2-ddmmyyhhmm
.Imposta il campo
versions.instanceTemplate
sull'URL del modello corrente.maxUnavailable=NUMBER_OF_ZONES
maxSurge=NUMBER_OF_ZONES
Se specifichi una percentuale di istanze VM per un aggiornamento canary, Updater tenta di distribuire le istanze in modo uniforme tra le zone. Il resto viene arrotondato per eccesso o per difetto in ogni zona, ma la differenza totale non è superiore a un'istanza VM per gruppo. Ad esempio, per un MIG con 10 istanze e una percentuale di dimensioni target del 25%, l'aggiornamento viene implementato in 2-3 istanze VM.
Se specifichi una percentuale per le opzioni di aggiornamento come
maxSurge
emaxUnavailable
, le percentuali vengono arrotondate in modo indipendente per zona.- Scopri di più su come visualizzare le informazioni su MIG e istanze gestite.
- Scopri di più sulla creazione di modelli di istanza.
- Scopri come utilizzare le famiglie di immagini e una sostituzione in sequenza per aggiornare l'immagine sistema operativo su tutte le VM di un MIG.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
Limitazioni
Avvia un aggiornamento in sequenza di base
Un aggiornamento in sequenza di base è un aggiornamento che viene applicato gradualmente a tutte le istanze di un MIG finché non sono state aggiornate all'ultima configurazione prevista. L'aggiornamento in sequenza ignora automaticamente le istanze che si trovano già nella loro configurazione più recente.
Puoi controllare vari aspetti di un aggiornamento in sequenza, ad esempio il numero di istanze che possono essere messe offline per l'aggiornamento, il tempo di attesa tra l'aggiornamento delle istanze, se il nuovo modello interessa tutte le istanze o solo una parte e così via.
Ecco alcuni aspetti da tenere presenti quando esegui un aggiornamento progressivo:
Per avviare un aggiornamento in sequenza di base in cui l'aggiornamento viene applicato a tutte le istanze del gruppo, segui le istruzioni riportate di seguito.
Console
gcloud
Utilizza il comando
rolling-action start-update
.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=INSTANCE_TEMPLATE_URL [--zone=ZONE | --region=REGION]
Sostituisci quanto segue:
REST
Chiama il metodo
patch
su una risorsa MIG a livello di regione o a livello di zona.Ad esempio, per un MIG a livello di regione, la seguente richiesta mostra la configurazione minima necessaria per aggiornare automaticamente il 100% delle istanze al nuovo modello di istanza.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "updatePolicy": { "type": "PROACTIVE" } }
Dopo aver inviato una richiesta, puoi monitorare l'aggiornamento per sapere quando è stato completato.
Per le configurazioni avanzate, includi altre opzioni di aggiornamento. Se non specifichi diversamente, le opzioni
maxSurge
emaxUnavailable
sono impostate per impostazione predefinita su1
moltiplicato per il numero di zone interessate. Ciò significa che viene disattivata solo un'istanza in ogni zona interessata e il MIG crea solo un'istanza aggiuntiva per zona durante l'aggiornamento.Configurare le opzioni per l'aggiornamento
Per aggiornamenti più complessi, puoi configurare opzioni aggiuntive, come descritto nelle sezioni seguenti.
Tipo aggiornamento
I gruppi di istanze gestite supportano due tipi di aggiornamento:
Se vuoi applicare gli aggiornamenti automaticamente, imposta il tipo su proattivo.
In alternativa, se un aggiornamento automatico è potenzialmente troppo dirompente, puoi scegliere di eseguire un aggiornamento opportunistico. Il MIG applica un aggiornamento opportunistico solo quando avvii manualmente l'aggiornamento sulle istanze selezionate o quando vengono create nuove istanze. È possibile creare nuove istanze quando tu o un altro servizio, ad esempio un gestore della scalabilità automatica, ridimensiona il MIG. Compute Engine non avvia attivamente richieste per applicare aggiornamenti opportunistici sulle istanze esistenti.
Per saperne di più sugli aggiornamenti automatici e selettivi, vedi Metodi per applicare una nuova configurazione alle VM esistenti.
Picco massimo
Utilizza l'opzione
maxSurge
per configurare il numero di nuove istanze che il MIG può creare al di sopra ditargetSize
durante un aggiornamento automatico. Ad esempio, se impostimaxSurge
su 5, il gruppo di istanze gestite utilizza il nuovo modello di istanza per creare fino a 5 nuove istanze al di sopra della dimensione target. L'impostazione di un valoremaxSurge
più alto accelera l'aggiornamento, a costo di istanze aggiuntive, che vengono fatturate in base al listino prezzi di Compute Engine.Puoi specificare un numero fisso o, se il gruppo ha 10 o più istanze, una percentuale. Se imposti una percentuale, lo strumento di aggiornamento arrotonda per eccesso il numero di istanze, se necessario.
Se non imposti il valore
maxSurge
, viene utilizzato il valore predefinito. Per i MIG a livello di zona, il valore predefinito permaxSurge
è1
. Per i MIG a livello di regione, il valore predefinito è il numero di zone associate al gruppo, ovvero3
.maxSurge
funziona solo se hai quota o risorse sufficienti per supportare le risorse aggiuntive.Se l'aggiornamento non richiede la sostituzione delle VM, questa opzione viene ignorata. Puoi forzare la sostituzione delle VM durante un aggiornamento impostando l'opzione Azione minima.
Numero massimo non disponibili
Utilizza l'opzione
maxUnavailable
per configurare il numero di istanze non disponibili in qualsiasi momento durante un aggiornamento automatico. Ad esempio, se impostimaxUnavailable
su 5, verranno disattivate solo 5 istanze alla volta per l'aggiornamento. Utilizza questa opzione per controllare il livello di interruzione dell'aggiornamento del servizio e la velocità di implementazione dell'aggiornamento.Questo numero include anche le istanze non disponibili per altri motivi. Ad esempio, se il gruppo è in fase di ridimensionamento, le istanze in fase di creazione potrebbero non essere disponibili. Queste istanze vengono conteggiate nel numero
maxUnavailable
.Puoi specificare un numero fisso o, se il gruppo ha 10 o più istanze, una percentuale. Se imposti una percentuale, Updater arrotonda per difetto il numero di istanze, se necessario.
Se non vuoi che nessuna macchina sia non disponibile durante un aggiornamento, imposta il valore di
maxUnavailable
su0
e il valore dimaxSurge
su un valore maggiore di 0. Con queste impostazioni, Compute Engine rimuove ogni vecchia macchina solo dopo che la nuova macchina sostitutiva è stata creata ed è in esecuzione.Se non imposti il valore
maxUnavailable
, viene utilizzato il valore predefinito. Per i MIG a livello di zona, il valore predefinito è1
. Per i MIG a livello di regione, il valore predefinito è il numero di zone associate al gruppo, ovvero3
.Tempo di attesa minimo
Utilizza l'opzione
minReadySec
per specificare il tempo di attesa prima di considerare aggiornata un'istanza nuova o riavviata. Utilizza questa opzione per controllare la velocità con cui viene implementato l'aggiornamento automatico. Il timer si avvia quando sono soddisfatte entrambe le seguenti condizioni:Tieni presente che, affinché il controllo di integrità restituisca un risultato positivo, lo strumento di aggiornamento attende le seguenti condizioni:
Se il controllo di integrità non restituisce
HEALTHY
entroinitialDelaySec
, l'Updater dichiara l'istanza VM come non integra e potenzialmente interrompe l'aggiornamento. Mentre l'istanza VM è in attesa di verifica durante il periodo di tempoinitialDelaySec
eminReadySec
, ilcurrentAction
dell'istanza èVERIFYING
. Tuttavia, lo stato dell'istanza VM sottostante rimaneRUNNING
.Se non sono presenti controlli di integrità per il gruppo, il timer inizia quando lo stato dell'istanza è
RUNNING
.Il valore massimo per il campo
minReadySec
è 3600 secondi (1 ora).Il seguente diagramma mostra in che modo le opzioni relative a dimensioni target, numero massimo di istanze non disponibili, numero massimo di istanze aggiuntive e tempo di attesa minimo influiscono sulle tue istanze. Per ulteriori informazioni sulle dimensioni target, vedi Aggiornamenti canary.
Azione minima
Utilizza l'opzione di azione minima per ridurre al minimo le interruzioni o per applicare un'azione più invasiva di quanto strettamente necessario. Ad esempio, Compute Engine non deve riavviare una VM per modificarne i metadati. Tuttavia, se la tua applicazione legge i metadati dell'istanza solo quando una VM viene riavviata, puoi impostare l'azione minima per il riavvio in modo da rilevare le modifiche ai metadati.
Se l'aggiornamento richiede un'azione più invasiva di quella impostata con questo flag, Compute Engine esegue l'azione necessaria per eseguire l'aggiornamento. Ad esempio, se specifichi un riavvio come azione minima, Updater tenta di riavviare le istanze per applicare l'aggiornamento. Tuttavia, se modifichi il sistema operativo, cosa che non può essere fatta riavviando l'istanza, lo strumento di aggiornamento sostituisce le istanze nel gruppo con nuove istanze VM.
Per ulteriori informazioni, incluse le opzioni valide, consulta Controllare il livello di interruzione durante un aggiornamento in sequenza.
Azione consentita più distruttiva
Utilizza l'opzione Azione più invasiva consentita per impedire un aggiornamento se richiede un'interruzione maggiore di quella che puoi permetterti. Se un aggiornamento non può essere completato a causa di questa impostazione, l'aggiornamento non riesce e le VM mantengono la configurazione precedente.
Per ulteriori informazioni, vedi Controllare il livello di interruzione durante un aggiornamento in sequenza.
Metodo di sostituzione
Per impostazione predefinita, quando aggiorni in modo proattivo un MIG, il gruppo elimina le istanze VM e le sostituisce con nuove istanze con nuovi nomi. Se devi conservare i nomi delle istanze VM, utilizza l'opzione
replacementMethod
.La conservazione dei nomi delle istanze esistenti può essere utile se hai applicazioni o sistemi che si basano sull'utilizzo di nomi di istanze specifici. Ad esempio, alcune applicazioni, come Memcached, si basano sui nomi delle istanze perché non dispongono di un servizio di rilevamento; di conseguenza, ogni volta che un nome di istanza cambia, l'applicazione perde la connessione a quella VM specifica.
Per conservare i nomi delle istanze, imposta il metodo di sostituzione su
RECREATE
anzichéSUBSTITUTE
se aggiorni il MIG con gcloud CLI o l'API Compute Engine. In alternativa, se aggiorni il MIG dalla console Google Cloud , seleziona la casella di controllo Mantieni i nomi quando sostituisci le VM.I valori
replacementMethod
validi sono:Per ulteriori informazioni, vedi Conservare i nomi delle istanze.
Altri esempi di aggiornamento
Di seguito sono riportati alcuni esempi di righe di comando con opzioni di configurazione comuni.
Esegui un aggiornamento in sequenza di tutte le istanze VM, ma crea fino a 5 nuove istanze al di sopra della dimensione target alla volta
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --max-surge=5 \ [--zone=ZONE | --region=REGION]
Esegui un aggiornamento in sequenza con al massimo 3 macchine non disponibili e un tempo di attesa minimo di 3 minuti prima di contrassegnare una nuova istanza come disponibile
gcloud beta compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --min-ready=3m \ --max-unavailable=3 \ [--zone=ZONE | --region=REGION]
Esegui un aggiornamento in sequenza di tutte le istanze VM, ma crea fino al 10% di nuove istanze al di sopra delle dimensioni target alla volta
Ad esempio, se hai 1000 istanze ed esegui il seguente comando, lo strumento di aggiornamento crea fino a 100 istanze prima di iniziare a rimuovere quelle che eseguono il template di istanza precedente.
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --max-surge=10% \ [--zone=ZONE | --region=REGION]
Aggiornamenti canary
Un aggiornamento canary è un aggiornamento applicato a un sottoinsieme di istanze del gruppo. Con un aggiornamento canary, puoi testare nuove funzionalità o upgrade su un sottoinsieme casuale di istanze, anziché implementare un aggiornamento potenzialmente distruttivo su tutte le istanze. Se un aggiornamento non va a buon fine, devi solo eseguire il rollback del sottoinsieme di istanze, riducendo al minimo l'interruzione per gli utenti.
Un aggiornamento canary è uguale a un aggiornamento in sequenza standard, tranne per il fatto che il numero di istanze da aggiornare è inferiore alle dimensioni totali del gruppo di istanze. Come per un aggiornamento progressivo standard, puoi configurare opzioni aggiuntive per controllare il livello di interruzione del servizio.
Avviare un aggiornamento canary
Per avviare un aggiornamento canary, specifica fino a due versioni del modello di istanza, in genere un nuovo modello di istanza per canary e il modello di istanza corrente per le istanze rimanenti. Ad esempio, puoi specificare che il 20% delle tue istanze venga creato in base a
NEW_INSTANCE_TEMPLATE
, mentre il resto delle istanze continua a essere eseguito suOLD_INSTANCE_TEMPLATE
. Non puoi specificare più di due modelli di istanza alla volta.NEW_INSTANCE_TEMPLATE
può essere un modello di istanza regionale della stessa regione del tuo MIG o un modello di istanza globale.Devi sempre specificare una dimensione target (
targetSize
) per la versione canary. Non puoi avviare un aggiornamento canary se ometti la dimensione target per la versione canary. Ad esempio, se hai specificato che il 10% delle istanze deve essere utilizzato per il canarying, il restante 90% rimane invariato e utilizza il modello di istanza corrente.Console
gcloud
Utilizza il comando
rolling-action start-update
. Fornisci sia il modello attuale sia quello nuovo per esprimere esplicitamente quante istanze devono utilizzare ciascun modello:gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=CURRENT_INSTANCE_TEMPLATE \ --canary-version=template=NEW_TEMPLATE,target-size=SIZE \ [--zone=ZONE | --region=REGION]
Sostituisci quanto segue:
Ad esempio, il seguente comando esegue un aggiornamento canary che implementa
example-template-B
al 10% delle istanze del gruppo:gcloud compute instance-groups managed rolling-action start-update example-mig \ --version=template=example-template-A \ --canary-version=template=example-template-B,target-size=10%
REST
Chiama il metodo
patch
su una risorsa MIG a livello di regione o a livello di zona. Nel corpo della richiesta, includi sia il modello di istanza corrente sia il nuovo modello di istanza che vuoi testare. Ad esempio:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "targetSize": { "[percent|fixed]": NUMBER|PERCENTAGE # Use `fixed` for a specific number of instances } }, { "instanceTemplate": "global/instanceTemplates/CURRENT_INSTANCE_TEMPLATE" } ] }
Sostituisci quanto segue:
Per altre opzioni, vedi Configurare le opzioni per l'aggiornamento.
Dopo aver inviato una richiesta, puoi monitorare l'aggiornamento per sapere quando è stato completato.
Esegui il roll forward di un aggiornamento canary
Dopo aver eseguito un aggiornamento canary, puoi decidere se eseguire il commit dell'aggiornamento al 100% del MIG o eseguirne il rollback.
Console
gcloud
Se vuoi eseguire il commit dell'aggiornamento canary, esegui il roll forward dell'aggiornamento emettendo un altro comando
rolling-action start-update
, ma imposta solo il flagversion
e ometti il flag--canary-version
.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ [--zone=ZONE | --region=REGION]
REST
Chiama il metodo
patch
su una risorsa MIG a livello di regione o a livello di zona. Nel corpo della richiesta, specifica il nuovo template di istanza comeversion
e ometti il template di istanza precedente dal corpo della richiesta. Ometti la specifica delle dimensioni di destinazione per implementare l'aggiornamento al 100% delle istanze. Ad esempio:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE" # New instance template } ] }
Monitorare gli aggiornamenti
Dopo aver avviato un aggiornamento, potrebbe essere necessario del tempo prima che la nuova configurazione venga implementata in tutte le istanze interessate. Puoi monitorare l'avanzamento di un aggiornamento controllando quanto segue:
Stato del gruppo
A livello di gruppo, Compute Engine compila un campo di sola lettura chiamato
status
, che contiene un flagversionTarget.isReached
e un flagisStable
. Puoi utilizzare gcloud CLI o REST per accedere a questi flag. Puoi anche utilizzare la console Google Cloud per visualizzare il numero attuale e pianificato di istanze in fase di aggiornamento.Console
Puoi monitorare un aggiornamento in sequenza per un gruppo andando alla pagina dei dettagli del gruppo.
gcloud
Utilizza il comando
describe
.gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]
Puoi anche utilizzare il comando
gcloud compute instance-groups managed wait-until
con il flag--version-target-reached
per attendere chestatus.versionTarget.isReached
sia impostato sutrue
per il gruppo:gcloud compute instance-groups managed wait-until INSTANCE_GROUP_NAME \ --version-target-reached \ [--zone=ZONE | --region=REGION]
REST
Chiama il metodo
get
su una risorsa MIG a livello di regione o a livello di zona.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/get
Verificare se l'implementazione di un aggiornamento è stata completata
Verifica se l'implementazione di un aggiornamento è completa controllando il valore del campo
status.versionTarget.isReached
del MIG:Controlla se un gruppo di istanze gestite è stabile
Per verificare che tutte le istanze di un gruppo di istanze gestite siano in esecuzione e integre, controlla il valore del campostatus.isStable
del gruppo.status.isStable
impostato sufalse
indica che le modifiche sono attive, in attesa o che il MIG stesso è in fase di modifica.status.isStable
impostato sutrue
indica le seguenti condizioni:Ricorda che la stabilità di un MIG dipende da numerosi fattori, in quanto può essere modificato in diversi modi. Ad esempio:
Quando tutte le azioni sono completate,
status.isStable
viene impostato di nuovo sutrue
per quel MIG.Azioni attuali sulle istanze
Utilizza Google Cloud CLI o REST per visualizzare i dettagli relativi alle istanze di un gruppo di istanze gestite. I dettagli comprendono lo stato delle istanze e le azioni che il gruppo sta eseguendo sulle proprie istanze.
gcloud
Tutte le istanze gestite
Per controllare lo stato e le azioni in corso su tutte le istanze del gruppo, utilizza il comando
list-instances
.gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]
Il comando restituisce un elenco delle istanze del gruppo che include lo stato, le azioni in corso e altri dettagli:
NAME: vm-instances-9pk4 ZONE: us-central1-f STATUS: HEALTH_STATE: ACTION: CREATING INSTANCE_TEMPLATE: my-new-template VERSION_NAME: LAST_ERROR: NAME: vm-instances-h2r1 ZONE: us-central1-f STATUS: STOPPING HEALTH_STATE: ACTION: DELETING INSTANCE_TEMPLATE: my-old-template VERSION_NAME: LAST_ERROR:
La colonna
HEALTH_STATE
è vuota, a meno che non siano stati configurati i controlli di integrità.Un'istanza gestita specifica
Per controllare lo stato e le azioni in corso su un'istanza specifica del gruppo, utilizza il comando
describe-instance
.gcloud compute instance-groups managed describe-instance INSTANCE_GROUP_NAME \ --instance INSTANCE_NAME \ [--zone=ZONE | --region=REGION]
Il comando restituisce i dettagli dell'istanza, che includono lo stato dell'istanza, l'azione in corso e, in caso di MIG stateful, lo stato conservato:
currentAction: NONE id: '6789072894767812345' instance: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-mig-hz41 instanceStatus: RUNNING name: example-mig-hz41 preservedStateFromConfig: metadata: example-key: example-value preservedStateFromPolicy: disks: persistent-disk-0: autoDelete: NEVER mode: READ_WRITE source: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/example-mig-hz41 version: instanceTemplate: https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template
REST
Chiama il metodo
listManagedInstances
su una risorsa MIG a livello di regione o a livello di zona. Ad esempio, per visualizzare i dettagli delle istanze in una risorsa MIG a livello di zona, puoi effettuare la seguente richiesta:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/listManagedInstances
La chiamata restituisce l'elenco delle istanze del MIG, che include
instanceStatus
ecurrentAction
per ogni istanza.{ "managedInstances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-prvp", "instanceStatus": "RUNNING", "currentAction": "REFRESHING", "id": "5317605642920955957", "version": { instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template" }, "name": "vm-instances-prvp" }, { "instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-w2t5", "instanceStatus": "RUNNING", "currentAction": "REFRESHING", "id": "2800161036826218547", "version": { "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template" }, "name": "vm-instances-w2t5" } ] }
Se configuri il controllo di integrità, la risposta include anche il campo
instanceHealth
.Per visualizzare un elenco dei valori validi del campo
instanceStatus
, vedi Ciclo di vita di un'istanza VM.Se un'istanza è in fase di modifica, il gruppo di istanze gestite imposta il campo
currentAction
dell'istanza su una delle seguenti azioni per agevolare il monitoraggio dello stato di avanzamento della modifica. Altrimenti il campocurrentAction
è impostato suNONE
.I valori
currentAction
possibili sono:Esegui il rollback di un aggiornamento
Non esiste un comando esplicito per eseguire il rollback di un aggiornamento a una versione precedente, ma se decidi di eseguire il rollback di un aggiornamento (un aggiornamento completamente eseguito o un aggiornamento canary), puoi farlo creando una nuova richiesta di aggiornamento e passando il modello di istanza a cui vuoi eseguire il rollback.
gcloud
Ad esempio, il seguente comando gcloud CLI esegue il rollback di un aggiornamento il più rapidamente possibile. Sostituisci
OLD_INSTANCE_TEMPLATE
con il nome del modello di istanza a cui vuoi eseguire il rollback.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=OLD_INSTANCE_TEMPLATE \ --max-unavailable=100% \ [--zone=ZONE | --region=REGION]
REST
Chiama il metodo
patch
su una risorsa MIG a livello di regione o a livello di zona.Nel corpo della richiesta, specifica il template di istanza precedente come
version
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "maxUnavailable": { "percent": 100 } }, "versions": [ { "instanceTemplate": "global/instanceTemplates/OLD_INSTANCE_TEMPLATE" # Old instance template } ] }
Per un MIG regionale con meno di 10 istanze, devi utilizzare un valore fisso per
maxUnavailable
e impostare il valore sul numero di istanze nel gruppo.Updater considera una richiesta di rollback come una normale richiesta di aggiornamento, quindi puoi specificare opzioni di aggiornamento aggiuntive.
Interrompere un aggiornamento
Non esiste un metodo o un comando esplicito per interrompere un aggiornamento. Puoi modificare un aggiornamento da proattivo a opportunistico e, se il gruppo non viene ridimensionato da altri servizi come lo scalatore automatico, il passaggio a opportunistico interrompe effettivamente l'aggiornamento.
Per modificare un aggiornamento da proattivo a opportunistico utilizzando gcloud CLI, esegui il seguente comando:
gcloud compute instance-groups managed rolling-action stop-proactive-update INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]
Per interrompere completamente l'aggiornamento dopo averlo convertito da proattivo a opportunistico, segui questi passaggi:
Controllare la velocità di un aggiornamento in sequenza
Per impostazione predefinita, quando invii una richiesta di aggiornamento, lo strumento di aggiornamento esegue l'aggiornamento il più rapidamente possibile. Se non vuoi applicare completamente un aggiornamento o stai testando in via sperimentale le modifiche, puoi controllare la velocità dell'aggiornamento utilizzando i seguenti metodi.
Puoi anche utilizzare una combinazione di questi metodi per controllare la frequenza di aggiornamento.
Controllare il livello di interruzione durante un aggiornamento in sequenza
A seconda della natura di un aggiornamento, potrebbe interrompere lo stato del ciclo di vita di un'istanza. Ad esempio, la modifica del disco di avvio di un'istanza richiede la sostituzione dell'istanza. Puoi controllare il livello di interruzione durante un aggiornamento in sequenza impostando le seguenti opzioni:
Entrambe le opzioni accettano i seguenti valori:
Valore Descrizione Quali proprietà dell'istanza possono essere aggiornate? REFRESH
Non arrestare l'istanza. Dischi aggiuntivi, metadati dell'istanza, etichette, tag RESTART
Arresta l'istanza e riavviala. Dischi aggiuntivi, metadati dell'istanza, etichette, tag, tipo di macchina REPLACE
(Valore predefinito.) Sostituisci l'istanza in base all'opzione Metodo di sostituzione. Tutte le proprietà dell'istanza archiviate nel modello di istanza o nella configurazione per istanza L'azione consentita più distruttiva non può essere meno distruttiva dell'azione minima.
Quando implementi automaticamente gli aggiornamenti, vengono applicate le seguenti impostazioni predefinite:
Puoi modificare il comportamento predefinito utilizzando l'API Compute Engine per impostare i campi
updatePolicy.minimalAction
eupdatePolicy.mostDisruptiveAllowedAction
nella risorsa MIG, ad esempio chiamando il metodoregionInstanceGroupManagers.patch
. In alternativa, puoi selezionare le Azioni autorizzate ad aggiornare le VM quando aggiorni il MIG dalla console Google Cloud . Per visualizzare le impostazioni attuali, consulta Ottenere le proprietà di un gruppo di istanze gestite.Un aggiornamento non va a buon fine se richiede un'azione più invasiva di quella che hai consentito. Se si verifica questo problema, puoi riprovare a eseguire l'aggiornamento con un'azione consentita più distruttiva oppure puoi aggiornare selettivamente l'istanza. Compute Engine esegue la convalida nel miglior modo possibile per verificare se le istanze possono essere aggiornate con il limite di interruzione specificato. Tuttavia, a causa di modifiche simultanee nel sistema, la situazione può cambiare dopo l'avvio dell'aggiornamento. Se un'operazione su una particolare istanza non va a buon fine, elenca gli errori dell'istanza per visualizzare l'errore.
Eseguire un riavvio graduale o una sostituzione
Un riavvio in sequenza arresta e riavvia tutte le istanze, mentre una sostituzione in sequenza sostituisce tutte le istanze in base all'opzione Metodo di sostituzione. Potresti voler eseguire un riavvio graduale o una sostituzione per i seguenti motivi:
Quando esegui un riavvio o una sostituzione in sequenza delle istanze utilizzando la consoleGoogle Cloud o Google Cloud CLI, nel MIG vengono eseguite le seguenti azioni sottostanti. Tuttavia, se utilizzi REST, devi impostare questi campi nella richiesta per attivare un'operazione di riavvio o sostituzione.
Per eseguire un riavvio o una sostituzione in sequenza, seleziona una delle seguenti opzioni:
Console
gcloud
Utilizza il comando
restart
o il comandoreplace
.I seguenti comandi eseguono un riavvio o una sostituzione in sequenza delle istanze in un MIG a livello di zona. Per un MIG a livello di regione, sostituisci il flag
--zone=ZONE
con--region=REGION
.Puoi personalizzare ulteriormente questi comandi con le stesse opzioni disponibili per gli aggiornamenti, ad esempio
--max-surge
e--max-unavailable
.REST
Invia una richiesta
PATCH
utilizzando uno dei seguenti metodi:Nel corpo della richiesta, devi impostare i seguenti campi. Se non specifichi questi campi, la richiesta potrebbe comunque andare a buon fine, ma il MIG non esegue l'operazione di riavvio o sostituzione.
Per riavviare tutte le istanze in un MIG a livello di zona, invia la seguente richiesta. Per sostituire tutte le istanze, imposta il campo
minimialAction
suREPLACE
nella stessa richiesta.PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "minimalAction": "RESTART", "type": "PROACTIVE" }, "versions": [ { "instanceTemplate": "global/instanceTemplates/CURRENT_INSTANCE_TEMPLATE", "name": "v2-1705499403" } ] }
Puoi personalizzare ulteriormente la richiesta con le stesse opzioni disponibili per gli aggiornamenti, ad esempio
maxSurge
emaxUnavailable
.Al termine di un'operazione di riavvio o sostituzione, puoi elencare le VM del MIG e controllare il campo
versions.name
di ogni VM per determinare quali VM sono state riavviate o sostituite.Altri esempi di sostituzione/riavvio
Esegui un riavvio in sequenza di tutte le VM, due alla volta
Il seguente comando riavvia tutte le VM del gruppo, due alla volta. Tieni presente che non è specificato un nuovo modello di istanza.
gcloud compute instance-groups managed rolling-action restart INSTANCE_GROUP_NAME \ --max-unavailable=2 \ [--zone=ZONE | --region=REGION]
Esegui un riavvio in sequenza di tutte le VM il più rapidamente possibile
gcloud compute instance-groups managed rolling-action restart INSTANCE_GROUP_NAME \ --max-unavailable=100% \ [--zone=ZONE | --region=REGION]
Esegui una sostituzione in sequenza di tutte le VM il più rapidamente possibile
gcloud compute instance-groups managed rolling-action replace INSTANCE_GROUP_NAME \ --max-unavailable=100% \ [--zone=ZONE | --region=REGION]
Mantieni i nomi delle istanze
Se devi conservare i nomi delle istanze VM durante un aggiornamento, imposta
replacementMethod
suRECREATE
. Devi anche impostaremaxUnavailable
su un valore superiore a0
emaxSurge
su0
. La ricreazione delle istanze anziché la loro sostituzione richiede più tempo per completare l'aggiornamento, ma le istanze aggiornate mantengono i loro nomi.Se non specifichi un metodo di sostituzione, viene utilizzato il valore
updatePolicy.replacementMethod
corrente del gruppo di istanze gestite. Se non è impostato, viene utilizzato il valore predefinito disubstitute
, che sostituisce le istanze VM con nuove istanze con nomi generati in modo casuale.gcloud
Quando emetti un comando
rolling-action
, includi il flag--replacement-method=recreate
.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --replacement-method=recreate \ --version=template=NEW_TEMPLATE \ --max-unavailable=5 \ [--zone=ZONE | --region=REGION]
REST
Chiama il metodo
patch
su una risorsa MIG a livello di regione o a livello di zona. Nel corpo della richiesta, includi il campoupdatePolicy.replacementMethod
:PATCH /compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "type": "PROACTIVE", "maxUnavailable": { "fixed": 5 }, "replacementMethod": "RECREATE" }, "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE" } ] }
Dopo aver inviato una richiesta, puoi monitorare l'aggiornamento per sapere quando è stato completato.
Aggiorna un gruppo di istanze gestite a livello di regione
Un MIG a livello di regione contiene istanze VM distribuite in più zone all'interno di una regione, a differenza di un MIG a livello di zona, che contiene solo istanze in una zona. I MIG a livello di regione ti consentono di distribuire le istanze in più zone per migliorare la disponibilità dell'applicazione e per supportare casi estremi in cui una zona non funziona o un intero gruppo di istanze smette di rispondere.
L'esecuzione di un aggiornamento su un MIG regionale è uguale all'esecuzione di un aggiornamento su un MIG a livello di zona, con alcune eccezioni descritte di seguito. Quando avvii un aggiornamento di un MIG a livello di regione, lo strumento di aggiornamento aggiorna sempre le istanze in modo proporzionale e uniforme in ogni zona. Non puoi scegliere quali istanze in quali zone vengono aggiornate per prime né puoi scegliere di aggiornare le istanze in una sola zona.
Differenze tra l'aggiornamento dei MIG a livello di regione e di zona
I MIG a livello di regione hanno i seguenti valori di aggiornamento predefiniti:
NUMBER_OF_ZONES
è il numero di zone associate al MIG a livello di regione. Per impostazione predefinita, il numero di zone per un MIG a livello di regione è3
. ma potresti selezionare un numero diverso.Se utilizzi numeri fissi quando specifichi un aggiornamento, il numero fisso deve essere
0
o uguale o maggiore del numero di zone associate al MIG a livello di regione. Ad esempio, se il gruppo è distribuito in tre zone, non puoi impostaremaxSurge
su1
o2
perché lo strumento di aggiornamento deve creare un'istanza aggiuntiva in ciascuna delle tre zone.Utilizzare un numero fisso o una percentuale nelle richieste di aggiornamento
Se specifichi un numero fisso nelle richieste di aggiornamento, il numero specificato viene diviso per il numero di zone nel MIG regionale e distribuito in modo uniforme. Ad esempio, se specifichi
maxSurge=10
, lo strumento di aggiornamento divide 10 per il numero di zone nella regione e crea istanze in base a questo numero. Se il numero di istanze non è divisibile equamente tra le zone, lo strumento di aggiornamento aggiunge le istanze rimanenti a una zona casuale. Quindi, per 10 istanze in tre zone, due zone ricevono 3 istanze e una zona ne riceve 4. La stessa logica viene applicata ai parametrimaxUnavailable
etargetSize
per gli aggiornamenti canary.Puoi specificare una percentuale solo se il gruppo MIG contiene almeno 10 istanze VM. Le percentuali vengono gestite in modo leggermente diverso a seconda della situazione:
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 2025-07-21 UTC.
-