Scalabilità automatica dei gruppi di istanze

I gruppi di istanze gestite (MIG) offrono funzionalità di scalabilità automatica che consentono di aggiungere o eliminare automaticamente le istanze di macchine virtuali (VM) da un MIG in base agli aumenti o alla riduzione del carico. La scalabilità automatica consente alle app di gestire più agevolmente l'aumento del traffico e riduce i costi quando il fabbisogno di risorse è inferiore. Devi definire il criterio di scalabilità automatica e il gestore della scalabilità automatica eseguirà la scalabilità automatica in base al carico misurato e alle opzioni configurate.

La scalabilità automatica funziona aggiungendo più VM al tuo MIG quando c'è un carico maggiore (scale in scale out, a volte indicato come scale up) ed eliminando le VM quando la necessità di VM è ridotta (scalabilità in entrata o in basso).

Specifiche

  • La scalabilità automatica funziona solo con i gruppi di istanze gestite (MIG). I gruppi di istanze non gestite non sono supportati.
  • Se vuoi scalare automaticamente un MIG a livello di area geografica, si applicano le seguenti limitazioni:
  • Non puoi creare istanze con nomi specifici quando è attiva la scalabilità automatica. Tuttavia, puoi attivare il gestore della scalabilità automatica dopo aver creato istanze VM con nomi specifici.
  • Non puoi utilizzare la scalabilità automatica se il tuo MIG ha una configurazione stateful.
  • Non utilizzare la scalabilità automatica di Compute Engine con MIG di proprietà di Google Kubernetes Engine. Per i gruppi Google Kubernetes Engine, utilizza invece la scalabilità automatica dei cluster.

    Se non sai con certezza se il tuo gruppo fa parte di un cluster GKE, cerca il prefisso gke nel nome MIG. Ad esempio, gke-test-1-3-default-pool-eadji9ah.

  • Un criterio di scalabilità automatica deve avere sempre almeno un indicatore di scalabilità.

  • Il gestore della scalabilità automatica può prendere decisioni di scalabilità in base a più indicatori, ma può gestire un solo indicatore per tipo di metrica, tranne nel caso delle metriche di Cloud Monitoring; un gestore della scalabilità automatica può gestire fino a cinque indicatori in base alle metriche di Monitoring. Il gestore della scalabilità automatica calcola il numero consigliato di macchine virtuali per ogni indicatore, quindi scala in base all'indicatore che fornisce il numero maggiore di macchine virtuali nel gruppo.

  • La scalabilità automatica funziona in modo indipendente dalla riparazione automatica. Se configuri la riparazione automatica per il tuo gruppo e un'istanza non supera il controllo di integrità, la riparazione automatica tenta di ricrearla. Se ricrei un'istanza, il numero di istanze nel gruppo potrebbe scendere al di sotto della soglia di scalabilità automatica (minNumReplicas) specificata.

  • Se si scala automaticamente un MIG a livello di area geografica, è possibile aggiungere un'istanza e quindi eliminarla immediatamente da una delle zone. Questo accade quando l'utilizzo nella zona attiva uno scale out, ma l'utilizzo complessivo nel MIG a livello di area geografica non richiede l'istanza aggiuntiva o l'istanza aggiuntiva è richiesta in una zona diversa.

Prerequisiti

Il gestore della scalabilità automatica utilizza l'agente di servizio Compute Engine per aggiungere e rimuovere istanze nel gruppo. Quando l'API Compute Engine è attiva, Google Cloud crea automaticamente questo account di servizio e l'associazione dei criteri IAM al ruolo di agente di servizio Compute Engine.

Se nel tuo progetto manca questo account, ad esempio se lo hai rimosso, puoi aggiungerlo manualmente:

console

  1. Nella console Google Cloud, vai alla pagina IAM.

    Vai a IAM

  2. Fai clic su Aggiungi.

  3. Inserisci service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.

  4. Seleziona il ruolo di agente di servizio Compute Engine.

  5. 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

La scalabilità automatica 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) create da un modello di istanza comune. Un gestore della scalabilità automatica aggiunge o elimina istanze da un gruppo di istanze gestite in base al criterio di scalabilità automatica del gruppo. Sebbene Compute Engine abbia gruppi di istanze gestite e non gestite, solo i gruppi di istanze gestite possono essere utilizzati con un gestore della scalabilità automatica.

Per comprendere la differenza tra un gruppo di istanze gestite e un gruppo di istanze non gestite, consulta l'articolo Gruppi di istanze.

Per informazioni su come creare un gruppo di istanze gestite, consulta Creazione di MIG.

Criterio di scalabilità automatica

Quando definisci un criterio di scalabilità automatica per il gruppo, devi specificare uno o più indicatori utilizzati dal gestore della scalabilità automatica per scalare il gruppo. Quando imposti più indicatori in un criterio, il gestore della scalabilità automatica calcola il numero di VM consigliato per ogni indicatore e imposta la dimensione consigliata del gruppo al numero massimo.

Le sezioni seguenti forniscono una panoramica degli indicatori basati sulle metriche di utilizzo e sugli indicatori basati sulle pianificazioni.

Metriche di utilizzo target

Puoi scalare automaticamente in base a una o più delle seguenti metriche che riflettono il carico del gruppo di istanze:

  • Utilizzo medio della CPU.
  • Capacità di gestione del bilanciamento del carico HTTP, che può essere basata sull'utilizzo o sulle richieste al secondo.
  • metriche di Cloud Monitoring.

Il gestore della scalabilità automatica raccoglie continuamente le informazioni sull'utilizzo in base alla metrica di utilità selezionata, confronta l'utilizzo effettivo con l'utilizzo target desiderato e utilizza queste informazioni per determinare se il gruppo deve rimuovere le istanze (scale in) o aggiungere istanze (scale out).

Il livello di utilizzo target è il livello al quale vuoi mantenere le 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 al 75% e il gestore della scalabilità automatica manterrà l'utilizzo della CPU del gruppo specificato di istanze vicino al 75%. 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 seguenti pagine:

Pianificazioni

Puoi utilizzare la scalabilità automatica basata su pianificazione per allocare capacità per i carichi previsti. Puoi avere fino a 128 pianificazioni di scalabilità per gruppo di istanze. Per ogni pianificazione di scalabilità, specifica quanto segue:

  • Capacità: istanze VM minime richieste
  • Programmazione: ora di inizio, durata e ricorrenza (ad esempio una volta, ogni giorno, ogni settimana o ogni mese)

Ogni pianificazione di scalabilità è attiva dall'ora di inizio e per la durata configurata. Durante questo periodo, il gestore della scalabilità automatica scala il gruppo in modo che contenga almeno il numero di istanze definito dalla pianificazione di scalabilità.

Per ulteriori informazioni, consulta la sezione Ridimensionare in base alle pianificazioni.

Periodo di attesa

Il periodo di attesa è anche noto come periodo di inizializzazione dell'applicazione. Durante l'inizializzazione di un'applicazione su un'istanza, i dati di utilizzo dell'istanza potrebbero non riflettere le circostanze normali. Pertanto, il gestore della scalabilità automatica utilizza il periodo di attesa per le decisioni di scalabilità nei seguenti modi:

  • Per le decisioni in termini di scale in, il gestore della scalabilità automatica considera i dati di utilizzo da tutte le istanze, anche quelle ancora in fase di raffreddamento. Il gestore della scalabilità automatica consiglia di rimuovere le istanze se l'utilizzo medio da tutte le istanze è inferiore all'utilizzo di destinazione.
  • Per le decisioni relative allo scale out, il gestore della scalabilità automatica ignora i dati di utilizzo dalle istanze ancora in fase di raffreddamento.
  • Se attivi la modalità predittiva, il periodo di attesa indica al gestore della scalabilità automatica predittiva di fare lo scale out ulteriore prima del carico previsto, in modo che le applicazioni vengano inizializzate all'arrivo del carico. Ad esempio, se imposti il periodo di raffreddamento su 300 secondi, il gestore della scalabilità automatica predittiva crea VM 5 minuti prima del caricamento previsto.

Specifica un periodo di attesa per indicare il tempo necessario per l'inizializzazione delle applicazioni sulla tua istanza. Per impostazione predefinita, il periodo di attesa è di 60 secondi.

I tempi di inizializzazione effettivi variano a causa di numerosi fattori. Ti consigliamo di verificare il tempo necessario per l'inizializzazione della tua applicazione. Per farlo, crea un'istanza e imposta il tempo di avvio dell'istanza da quando l'istanza diventa RUNNING fino al completamento dell'applicazione.

Se imposti un valore di periodo di attesa molto più lungo rispetto al tempo necessario per l'inizializzazione di un'istanza, il gestore della scalabilità automatica potrebbe ignorare i dati di utilizzo legittimi e potrebbe sottostimare le dimensioni richieste del gruppo, causando un ritardo nello scale out.

Periodo di stabilizzazione

Ai fini della scalabilità automatica, il gestore della scalabilità automatica calcola la dimensione target consigliata del gruppo in base al carico di picco negli ultimi 10 minuti. Questi ultimi 10 minuti sono indicati come periodo di stabilizzazione.

Utilizzando il periodo di stabilizzazione, il gestore della scalabilità automatica assicura che la dimensione consigliata per il gruppo di istanze gestite sia sempre sufficiente per gestire il carico di picco osservato nei 10 minuti precedenti.

Questo periodo di stabilizzazione di 10 minuti potrebbe apparire come un ritardo nella scalabilità, ma in realtà è una funzionalità integrata di scalabilità automatica. Il ritardo garantisce che la dimensione del gruppo più piccola sia sufficiente per supportare il carico di picco degli ultimi 10 minuti.

Modalità di scalabilità automatica

Se devi esaminare o configurare il tuo gruppo senza interferenze dalle operazioni del gestore della scalabilità automatica, puoi disattivare o limitare temporaneamente le attività di scalabilità automatica. La configurazione del gestore della scalabilità automatica persiste quando viene disattivata o limitata e tutte le attività di scalabilità automatica riprendono quando la riattivi o rimuovi la limitazione.

Scalabilità automatica predittiva

Se abiliti la scalabilità automatica predittiva per ottimizzare la disponibilità del MIG, il gestore della scalabilità automatica prevede il caricamento futuro in base ai dati storici e scala un MIG in anticipo rispetto al carico previsto, in modo che le nuove istanze siano pronte all'uso quando arriva il carico.

La scalabilità automatica predittiva funziona meglio se il tuo carico di lavoro soddisfa i seguenti criteri:

  • L'inizializzazione dell'applicazione richiede molto tempo, ad esempio se configuri un periodo di raffreddamento superiore a due minuti.
  • Il tuo carico di lavoro varia in modo prevedibile con cicli giornalieri o settimanali.

Per saperne di più, consulta Scalabilità in base alle previsioni.

Controlli di scale in

Se l'inizializzazione dei carichi di lavoro richiede diversi minuti (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. In particolare, se prevedi che i picchi di carico seguiranno subito dopo il rifiuto, puoi limitare la frequenza di scale in larga scala per evitare che la scalabilità automatica riduca le dimensioni di MIG# per un numero di istanze VM superiore a quello consentito dal carico di lavoro.

Non è necessario configurare i controlli di scale in se l'applicazione si inizializza abbastanza rapidamente per rilevare picchi di carico su scale out.

Per configurare i controlli di scale in, imposta le seguenti proprietà nel criterio di scalabilità automatica.

  • Riduzione massima consentita. Il numero di istanze VM che il tuo carico di lavoro può permettersi di perdere (in base alle dimensioni massime) entro il periodo di tempo specificato. Utilizza questo parametro per limitare la quantità di scalabilità del tuo gruppo in modo da poter pubblicare comunque un picco di carico probabile fino a quando non inizia un numero maggiore di istanze. Più basso è il valore impostato per la riduzione massima consentita, più tempo sarà necessario per lo scale up del gruppo.

  • Periodo di riferimento. La cronologia entro la quale il gestore della scalabilità automatica monitora la dimensione massima richiesta dal carico di lavoro. Il gestore della scalabilità automatica non verrà ridimensionato al di sotto della riduzione massima consentita consentita dalla dimensione massima osservata in questo periodo. Puoi utilizzare questo parametro per definire quanto tempo il gestore della scalabilità automatica deve attendere prima di rimuovere le istanze, come definito dalla riduzione massima consentita. Con un intervallo di tempo finale più lungo, il gestore della scalabilità automatica prende in considerazione i picchi più storici, rendendo lo scale in più più stabile e stabile.

Per ulteriori informazioni, consulta Configurazione dei controlli di scale in e Comprensione delle decisioni del gestore della scalabilità automatica.

La dimensione del gruppo consigliata è il numero consigliato di VM del gestore di 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 indicati come periodo di stabilizzazione. Le dimensioni consigliate vengono ricalcolate costantemente. Se imposti un criterio di scalabilità automatica con controlli di scale in, la dimensione consigliata è vincolata dai controlli di scale in.

Prezzi

Non sono previsti costi aggiuntivi per la configurazione di un criterio di scalabilità automatica. Il gestore della scalabilità automatica aggiunge o elimina dinamicamente le istanze VM, quindi ti verranno addebitate solo le risorse utilizzate dal tuo MIG. Puoi controllare il costo delle risorse configurando il numero minimo e massimo di istanze nel criterio di scalabilità automatica. Per le informazioni sui prezzi di Compute Engine, consulta la sezione Prezzi.

Passaggi successivi

  1. Se non hai un MIG esistente, scopri come creare un gruppo di istanze gestite.
  2. Crea un gestore della scalabilità automatica che esegue la scalabilità in base a:

  3. Gestisci il gestore della scalabilità automatica, ad esempio per avere informazioni in merito, configurare i controlli di scale in o per limitarlo temporaneamente.