L'offerta dei gruppi di istanze gestite (MIG) di scalabilità automatica che ti consentono di aggiungere o eliminare di Compute Engine da un gruppo di istanze gestite in base agli incrementi diminuzioni del carico. La scalabilità automatica consente alle app di gestire agevolmente l'aumento del traffico e di ridurre i costi quando il fabbisogno di risorse è inferiore. Sei tu a definire criterio di scalabilità automatica e il gestore della scalabilità automatica la scalabilità in base al carico misurato e alle opzioni configurate.
La scalabilità automatica funziona aggiungendo altre VM al gruppo di istanze gestite quando il carico è maggiore (scaling out) ed eliminando le VM quando il fabbisogno di VM è ridotto (scaling in).
Prerequisiti
Il gestore della scalabilità automatica utilizza Compute Engine Service Agent per aggiungere e rimuovere le istanze nel gruppo. Google Cloud crea automaticamente questo account di servizio, nonché il relativo vincolo del criterio IAM al ruolo Agenti di servizio Compute Engine, quando l'API Compute Engine è abilitata.
Se nel tuo progetto manca questo account, ad esempio se lo hai rimosso, puoi aggiungerlo manualmente:
Console
Nella console Google Cloud, vai alla pagina IAM.
Fai clic su Concedi l'accesso.
Nel campo Nuove entità, inserisci
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
.Seleziona il ruolo Agente di servizio Compute Engine.
Fai clic su Salva.
gcloud
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role roles/compute.serviceAgent
Concetti fondamentali
L'autoscaling utilizza i seguenti concetti e servizi fondamentali.
Gruppi di istanze gestite
La scalabilità automatica è una funzionalità dei gruppi di istanze gestite (MIG). Un gruppo di istanze gestite è una raccolta di istanze di macchine virtuali (VM) vengono create da un modello di istanza comune. Un'autoscalabilità aggiunge o elimina istanze da un gruppo di istanze gestite in base al criterio di scalabilità automatica del gruppo. Sebbene Compute Engine disponga sia di gruppi di istanze gestite sia di gruppi di istanze non gestite, solo i gruppi di istanze gestite possono essere utilizzati con un'autoscalabilità.
Per comprendere la differenza tra un gruppo di istanze gestito e un gruppo di istanze non gestito, consulta Gruppi di istanze.
Per scoprire come creare un gruppo di istanze gestite, consulta Creazione di gruppi di istanze gestite.
Criterio di scalabilità automatica
Quando definisci un criterio di scalabilità automatica per il tuo gruppo, devi specificare uno o più utilizzati dal gestore della scalabilità automatica per scalare il gruppo. Quando imposti più in un criterio, il gestore della scalabilità automatica calcola il numero consigliato di VM per ogni indicatore e imposta la dimensione consigliata per il gruppo sul numero più alto.
Un criterio di scalabilità automatica deve avere sempre almeno un indicatore di scalabilità. Quando Se attivi la scalabilità automatica in un gruppo di istanze gestite, per impostazione predefinita il gestore della scalabilità automatica aggiunge un utilizzo della CPU segnale. Puoi modificare questo indicatore predefinito o rimuovere e aggiungere altri indicatori nella .
Le seguenti sezioni forniscono una panoramica degli indicatori in base al target metriche di utilizzo e indicatori basati su pianificazioni.
Metriche di utilizzo target
Puoi scalare automaticamente in base a una o più delle seguenti metriche che riflettono la del gruppo di istanze:
- Utilizzo CPU medio
- Capacità di gestione del bilanciamento del carico HTTP
- Metriche di Cloud Monitoring
Il gestore della scalabilità automatica raccoglie continuamente informazioni sull'utilizzo in base ai di utilizzo, confronta l'utilizzo effettivo con il target desiderato all'utilizzo e utilizza queste informazioni per determinare se il gruppo ha bisogno per rimuovere istanze (con fare lo scale in) o per aggiungerle (con scale out).
Il livello di utilizzo target è il livello al quale vuoi mantenere delle tue istanze di macchine virtuali (VM). Ad esempio, se esegui la scalabilità in base all'utilizzo della CPU, puoi impostare il livello di utilizzo target sul 75% e il gestore della scalabilità automatica manterrà l'utilizzo della CPU del gruppo di istanze specificato al 75% o quasi. Il livello di utilizzo per ogni metrica viene interpretato in modo diverso in base al criterio di scalabilità automatica.
Per ulteriori informazioni sulla scalabilità in base alle metriche di utilizzo target, consulta le pagine seguenti:
- Scalabilità basata sull'utilizzo della CPU
- Scalabilità basata sulla capacità di gestione del bilanciamento del carico
- Scalabilità basata sulle metriche di Cloud Monitoring
Pianificazioni
Puoi utilizzare la scalabilità automatica basata su pianificazione per allocare la capacità in base ai carichi previsti. Puoi avere fino a 128 pianificazioni di scalabilità per gruppo di istanze. Per ogni pianificazione della scalabilità, specifica quanto segue:
- Capacità: istanze VM minime richieste
- Programmazione: ora di inizio, durata e ricorrenza (ad es. una volta, ogni giorno, settimanale o mensile)
Ogni pianificazione di scalabilità è attiva dall'ora di inizio e per durata massima. Durante questo periodo, il gestore della scalabilità automatica scala il gruppo in modo da avere quante istanze sono definite dalla pianificazione di scalabilità.
Per ulteriori informazioni, consulta la sezione Scalabilità in base alle pianificazioni.
Periodo di inizializzazione
Il periodo di inizializzazione, precedentemente noto come periodo di attesa, è la durata l'inizializzazione delle applicazioni sulle tue istanze VM. Durante l'inizializzazione di un'applicazione in un'istanza, i dati di utilizzo dell'istanza potrebbero non riflettere circostanze normali. Il gestore della scalabilità automatica utilizza di inizializzazione per prendere decisioni di scalabilità nei seguenti modi:
- Per le decisioni di scale in, il gestore della scalabilità automatica considera i dati sull'utilizzo provenienti da tutti di Compute Engine, anche un'istanza ancora nel periodo di inizializzazione. Il gestore della scalabilità automatica consiglia di rimuovere le istanze se l'utilizzo medio tutte le istanze sono inferiori all'utilizzo target.
- Per le decisioni di scale out, il gestore della scalabilità automatica ignora i dati di utilizzo delle istanze che sono ancora nel periodo di inizializzazione.
- Se attivi la modalità predittiva, il periodo di inizializzazione informa il gestore della scalabilità automatica predittiva di eseguire un ulteriore scale out prima del carico previsto, in modo che le applicazioni vengano inizializzate quando arriva il carico. Ad esempio, se imposti il periodo di inizializzazione su 300 secondi, il gestore della scalabilità automatica predittivo crea le VM 5 minuti prima del caricamento previsto.
Per impostazione predefinita, il periodo di inizializzazione è di 60 secondi. Tempi di inizializzazione effettivi
variano in base a vari fattori. Ti consigliamo di verificare il tempo necessario per l'inizializzazione dell'applicazione. Per farlo, crea un
e l'ora del processo di avvio dal momento in cui l'istanza
RUNNING
fino a quando l'applicazione non è pronta.
Se imposti un valore del periodo di inizializzazione notevolmente più lungo rispetto necessario per inizializzare un'istanza, il gestore della scalabilità automatica potrebbe sull'utilizzo legittimo e potrebbe sottovalutare la dimensione richiesta del tuo gruppo, causando un ritardo nello scale out.
Periodo di stabilizzazione
Gli indicatori di scalabilità automatica come l'utilizzo della CPU non sono molto stabili e possono cambiare rapidamente. Man mano che il carico aumenta e diminuisce, il gestore della scalabilità automatica deve per evitare l'eliminazione e la creazione continue delle VM. Il gestore della scalabilità automatica stabilizza un segnale mantenendo una capacità VM sufficiente per gestire il picco carico osservato durante il periodo di stabilizzazione.
Il periodo di stabilizzazione è uguale a 10 minuti o al periodo di inizializzazione impostato, a seconda del periodo più lungo. Il periodo di stabilizzazione viene utilizzato solo per le decisioni di scalabilità automatica verso il basso quando il gestore della scalabilità automatica deve eliminare le VM.
Quando il carico diminuisce, il gestore della scalabilità automatica non elimina le VM immediatamente. Il gestore della scalabilità automatica mantiene la capacità di monitoraggio necessaria per la durata il periodo di stabilizzazione ed elimina le VM solo quando la capacità è sufficiente per soddisfare il picco di carico. Ciò potrebbe comportare un ritardo nel ridimensionamento verso il basso, ma si tratta di una funzionalità integrata della scalabilità automatica.
Se l'inizializzazione dell'applicazione su una nuova VM richiede più di 10 minuti, il gestore della scalabilità automatica utilizza il periodo di inizializzazione anziché i 10 minuti predefiniti di stabilizzazione per attendere che la VM possa essere eliminata. Ciò garantisce che la decisione del gestore della scalabilità automatica di eliminare la VM prenda in considerazione il tempo necessario per recuperare la capacità di pubblicazione.
Quando il carico aumenta, il gestore della scalabilità automatica non utilizza il periodo di stabilizzazione e crea immediatamente tutte le VM necessarie per soddisfare la domanda.
Modalità di scalabilità automatica
Se devi esaminare o configurare il gruppo senza interferenze da parte delle operazioni di scalabilità automatica, puoi disattivare o limitare temporaneamente le attività di scalabilità automatica. La configurazione del gestore della scalabilità automatica persiste e tutte le attività di scalabilità automatica riprendono quando la riattivi o rimuovi il delle risorse.
Scalabilità automatica predittiva
Se attivi la scalabilità automatica predittiva per ottimizzare il gruppo di istanze gestite in base alla disponibilità, il gestore della scalabilità automatica prevede il carico futuro in base ai dati storici e esegue la scalabilità in uscita di un gruppo di istanze gestite in anticipo rispetto al carico previsto, in modo che le nuove istanze siano pronte all'uso quando si verifica il carico.
La scalabilità automatica predittiva funziona al meglio se il carico di lavoro soddisfa i seguenti criteri:
- L'inizializzazione dell'applicazione richiede molto tempo, ad esempio se configuri un periodo di inizializzazione di più di 2 minuti.
- Il carico di lavoro varia in modo prevedibile a seconda dei cicli giornalieri o settimanali.
Per ulteriori informazioni, consulta la sezione Scalabilità in base alle previsioni.
Controlli di scale in
Se sono necessari molti minuti per l'inizializzazione dei tuoi carichi di lavoro (ad esempio a causa di attività di installazione lunghe), puoi ridurre il rischio di latenza di risposta causata da eventi di scale in improvvisi configurando i controlli di scale in. Nello specifico, se prevedi picchi di carico subito dopo i cali, puoi limitare la frequenza di ridimensionamento in modo da impedire alla scalabilità automatica di ridurre le dimensioni di un gruppo di istanze gestite con un numero di istanze VM superiore a quello tollerato dal tuo carico di lavoro.
Non devi configurare i controlli di scale in se l'applicazione si avvia abbastanza rapidamente da rilevare picchi di carico durante il scale out.
Per configurare i controlli di scale in, imposta le seguenti proprietà nella e il criterio di scalabilità automatica.
Massima riduzione consentita. Il numero di istanze VM che il carico di lavoro può permettersi di perdere (dal suo dimensioni massime) entro l'intervallo di tempo finale specificato. Usa questo parametro per limita la scalabilità del tuo gruppo in modo da poter continuare a pubblicare un probabile picco di carico finché non viene avviata la gestione di più istanze. Minore è il valore impostato la riduzione massima consentita, maggiore sarà il tempo impiegato dal gruppo per fare lo scale in.
Finestra temporale del trailing. La cronologia in cui il gestore della scalabilità automatica monitora le dimensioni di picco richieste dal tuo carico di lavoro. Il gestore della scalabilità automatica non ridimensiona al di sotto del limite massimo consentito riduzione sottratta dalla dimensione del picco osservata in questo periodo. Puoi utilizzare questo parametro per definire il tempo che deve attendere il gestore della scalabilità automatica prima di rimuovere le istanze, come definito dalla riduzione massima consentita. Con una finestra temporale più lunga, il gestore della scalabilità automatica considera picchi, rendendo lo scale in più conservativo e stabile.
Per ulteriori informazioni, vedi Configurazione dei controlli di scale in e Informazioni sulle decisioni del gestore della scalabilità automatica.
Dimensioni consigliate
La dimensione consigliata del gruppo è il numero consigliato di VM del gestore della scalabilità automatica che il gruppo di istanze gestite deve mantenere, in base al carico di picco osservato negli ultimi 10 minuti. Questi ultimi 10 minuti sono definiti periodo di stabilizzazione. La dimensione consigliata viene ricalcolata costantemente. Se imposti un criterio di scalabilità automatica con controlli di scalabilità verso il basso, le dimensioni consigliate sono vincolate dai controlli di scalabilità verso il basso.
Limitazioni
Non puoi utilizzare la scalabilità automatica con i seguenti gruppi di istanze, che non consentono al gestore della scalabilità automatica di creare o eliminare VM in base alla domanda:
- Gruppi di istanze non gestite
- Gruppi di istanze gestite con configurazione stateful
- MIG con riparazioni delle VM disattivate
- Gruppi di istanze gestite a livello di regione con una forma di distribuzione di destinazione pari a
ANY
oANY_SINGLE_ZONE
Non puoi creare istanze VM con nomi specifici mentre la scalabilità automatica è attiva.
Non utilizzare la scalabilità automatica di Compute Engine con i gruppi di istanze gestite di proprietà di Google Kubernetes Engine. Per i gruppi di Google Kubernetes Engine, utilizza scalabilità automatica del cluster. Se non sai se un gruppo di istanze gestite faccia parte di un cerca il prefisso
gke
nel nome del gruppo di istanze gestite. Ad esempio:gke-test-1-3-default-pool-eadji9ah
.
Cosa succede durante la riparazione automatica
La scalabilità automatica funziona indipendentemente dal riparazione automatica.
Se configuri la riparazione automatica per il tuo gruppo e un'istanza non supera l'integrità
il gruppo di istanze gestite cerca di ricreare l'istanza. Mentre un'istanza viene rielaborata dal gruppo di istanze gestite, il numero di istanze in esecuzione nel gruppo potrebbe essere inferiore al numero minimo di istanze specificato per il gruppo (autoscalingPolicy.minNumReplicas
).
Prezzi
Non sono previsti costi aggiuntivi per la configurazione di un criterio di scalabilità automatica. Gestore della scalabilità automatica aggiunge o elimina istanze VM in modo dinamico, quindi ti vengono addebitati solo i costi utilizzate dal gruppo di istanze gestite. Puoi controllare il costo delle risorse configurando il numero minimo e massimo di istanze nel criterio di scalabilità automatica. Per informazioni sui prezzi di Compute Engine, consulta Prezzi.
Passaggi successivi
- Scopri come funziona la scalabilità automatica in un gruppo di istanze gestite a livello di regione.
- Se non hai un gruppo di istanze gestite, consulta la sezione su come creare un gruppo di istanze gestite.
Crea un gestore della scalabilità automatica in grado di scalare su:
Gestisci il gestore della scalabilità automatica, per ad esempio per ottenere informazioni, configurare i controlli di scale in limitarlo temporaneamente.