Scalabilità automatica dei gruppi di istanze

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

I gruppi di istanze gestite offrono funzionalità di scalabilità automatica che ti consentono di aggiungere o eliminare automaticamente le istanze di macchine virtuali (VM) da un gruppo di istanze gestite in base agli incrementi o alle riduzioni del carico. La scalabilità automatica consente alle app di gestire agevolmente l'aumento del traffico e ridurre i costi quando il fabbisogno di risorse è inferiore. Tu definisci il criterio di scalabilità automatica e il gestore della scalabilità automatica esegue la scalabilità automatica in base al carico misurato e alle opzioni che configuri.

La scalabilità automatica funziona aggiungendo più VM al gruppo di istanze gestite quando il carico è maggiore (scalatura, a volte indicata come scale up) ed eliminazione delle VM quando viene ridotta la necessità di VM (scalabilità in o scale down).

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 gruppo di istanze gestite a livello di area geografica, si applicano le seguenti limitazioni:
  • Non è possibile creare istanze con nomi specifici mentre la scalabilità automatica è attiva. Tuttavia, puoi attivare il gestore della scalabilità automatica dopo la creazione delle istanze VM con nomi specifici.
  • Non puoi utilizzare la scalabilità automatica se il tuo gruppo di istanze gestite ha una configurazione stateful.
  • Non utilizzare la scalabilità automatica di Compute Engine con MIG di proprietà di Google Kubernetes Engine. Per i gruppi di 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 del gruppo di istanze gestite. Ad esempio, gke-test-1-3-default-pool-eadji9ah.

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

  • Un 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à, il riparazione automatica tenta di ricrearla. La ricreazione di un'istanza può causare il calo del numero di istanze nel gruppo al di sotto della soglia di scalabilità automatica (minNumReplicas) specificata.

  • Se esegui la scalabilità automatica di un gruppo di istanze gestite a livello di area geografica, puoi aggiungere un'istanza, per poi 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 regione 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. Google Cloud crea automaticamente questo account di servizio, nonché l'associazione dei criteri IAM al ruolo Agente di servizio Compute Engine, quando l'API Compute Engine è attivata.

Se nel tuo progetto manca questo account, ad esempio se l'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 Gruppi di istanze.

Per informazioni su come creare un gruppo di istanze gestite, consulta la sezione 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ù indicatori utilizzati dal gestore della scalabilità automatica per la scalabilità del gruppo. Quando imposti più indicatori in un criterio, il gestore della scalabilità automatica calcola il numero consigliato di VM per ogni segnale e imposta la dimensione consigliata del gruppo sul numero più alto.

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

Metriche di utilizzo target

Puoi applicare la scalabilità automatica 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 in modo continuo le informazioni sull'utilizzo in base alla metrica di applicazione selezionata, confronta l'utilizzo effettivo con l'utilizzo target scelto 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 a cui 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 di istanze specificato su quasi il 75%. Il livello di utilizzo per ciascuna 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 pianificazioni 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à: numero minimo di istanze VM richieste
  • Programmazione: ora di inizio, durata e ricorrenza (ad esempio, una volta, ogni giorno, ogni settimana o ogni mese)

Ogni pianificazione di scalabilità è attiva dal momento dell'inizio e della durata configurata. Durante questo periodo, il gestore della scalabilità automatica scala il gruppo in modo da avere almeno il numero di istanze definite dalla pianificazione di scalabilità.

Per ulteriori informazioni, consulta Scalabilità in base alle pianificazioni.

Periodo di attesa

Il periodo di raffreddamento è noto anche 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. Quindi il gestore della scalabilità automatica utilizza il periodo di raffreddamento per prendere decisioni di scalabilità nei seguenti modi:

  • Per le decisioni di scale in, il gestore della scalabilità automatica considera i dati di utilizzo da tutte le istanze, anche da un'istanza ancora nel periodo di raffreddamento. Il gestore della scalabilità automatica consiglia di rimuovere le istanze se l'utilizzo medio da tutte le istanze è inferiore all'utilizzo target.
  • Per le decisioni sullo 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 raffreddamento informa il gestore della scalabilità automatica predittiva di fare lo scale out ulteriormente 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 delle VM 5 minuti prima del caricamento previsto.

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

I tempi di inizializzazione effettivi variano a causa di numerosi fattori. Ti consigliamo di testare il tempo necessario per l'inizializzazione dell'applicazione. Per farlo, crea un'istanza e imposta il tempo di avvio del processo da quando l'istanza diventa RUNNING fino a quando l'applicazione è pronta.

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

Periodo di stabilizzazione

Ai fini dello scale in, 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 definiti periodo di stabilizzazione.

Utilizzando il periodo di stabilizzazione, il gestore della scalabilità automatica assicura che le dimensioni consigliate per il gruppo di istanze gestite siano sempre sufficienti a 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 assicura che la dimensione del gruppo più piccolo sia sufficiente a 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 continua quando la funzionalità è disattivata o è limitata e tutte le attività di scalabilità automatica riprendono quando la riattivi o riattivi la restrizione.

Scalabilità automatica predittiva

Se abiliti la scalabilità automatica predittiva per ottimizzare la disponibilità del gruppo di istanze gestite, il gestore della scalabilità automatica prevede il carico futuro in base ai dati storici e fa lo scale out di un gruppo di istanze gestite in anticipo rispetto al carico previsto, in modo che le nuove istanze siano pronte per essere pubblicate all'arrivo del 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 raffreddamento superiore a 2 minuti.
  • Il carico di lavoro varia in modo prevedibile con cicli giornalieri o settimanali.

Per ulteriori informazioni, consulta Scalabilità in base alle previsioni.

Controlli di scale in

Se l'inizializzazione dei tuoi carichi di lavoro richiede diversi minuti (ad esempio a causa di lunghe attività di installazione), puoi ridurre il rischio di latenza di risposta causata da eventi di scale in bruschi configurando i controlli di scale in. In particolare, se prevedi che i picchi di carico seguiranno subito dopo i cali, puoi limitare la percentuale di scale-through per evitare che la scalabilità automatica riduca le dimensioni del MIG di più istanze VM di quelle che il tuo carico di lavoro può tollerare.

Non è necessario configurare i controlli di scale in se l'applicazione viene inizializzata abbastanza rapidamente da rilevare picchi di carico su scale out.

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

  • Riduzione massima consentita. Il numero di istanze VM che il carico di lavoro può permettersi di perdere (dalla sua dimensione massima) entro il periodo di tempo specificato. Utilizza questo parametro per limitare la scalabilità del gruppo in modo da poter continuare a gestire un probabile picco di carico fino a quando non iniziano a essere pubblicate più istanze. Più basso è il valore impostato per la riduzione massima consentita, più lungo sarà il tempo impiegato dal gruppo per lo scale in.

  • Finestra temporale di preparazione. La cronologia entro la quale il gestore della scalabilità automatica monitora le dimensioni massime richieste dal carico di lavoro. Il gestore della scalabilità automatica non verrà ridimensionato al di sotto della riduzione massima consentita sottratta 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 picchi più storici, rendendo lo scale in più conservativo e stabile.

Per saperne di più, consulta Configurazione dei controlli di scale in e Informazioni sulle decisioni del gestore della scalabilità automatica.

Le dimensioni consigliate per il gruppo sono il numero consigliato di VM 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. Le dimensioni consigliate vengono ricalcolate costantemente. Se configuri 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 in modo dinamico le istanze VM, quindi ti vengono addebitate solo le risorse 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

  1. Se non disponi di un gruppo di istanze gestite, leggi come creare un gruppo di istanze gestite.
  2. Crea un gestore della scalabilità automatica che sia scalabile in base a:

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