Questo documento descrive come creare un gruppo di istanze gestite (MIG) con scalabilità automatica che aggiunge e rimuove automaticamente le VM in base all'utilizzo medio della CPU nel gruppo. Ad esempio, se l'utilizzo della CPU da parte del gruppo è basso, il gruppo rimuove automaticamente le VM per risparmiare sui costi.
È possibile ridimensionare automaticamente un MIG in base a vari tipi di indicatori di ridimensionamento automatico. Per ulteriori informazioni, consulta la panoramica sul gestore della scalabilità automatica.
Puoi anche leggere altri scenari di base per la creazione di un MIG.
Prima di iniziare
- Crea un template di istanza, necessario per creare un gruppo di istanze gestite.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Terraform
Per utilizzare gli esempi di Terraform in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
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.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Limitazioni
Per visualizzare l'elenco completo delle limitazioni dei MIG, che varia in base alla configurazione utilizzata, consulta Limitazioni dei MIG.
Crea un MIG e abilita la scalabilità automatica
Utilizza la Google Cloud console, gcloud CLI, Terraform o REST.
Console
-
Nella console, vai alla pagina Gruppi di istanze.
I passaggi rimanenti vengono visualizzati nella console Google Cloud .
-
Se hai un gruppo di istanze, selezionalo e fai clic su Modifica. Se non hai un gruppo di istanze, fai clic su
Crea gruppo di istanze . - Per un nuovo gruppo di istanze, assegna un nome, quindi scegli un modello di istanza per il gruppo di istanze, oppure creane uno nuovo.
- Se non esiste una configurazione di scalabilità automatica, in Scalabilità automatica, fai clic su Configura scalabilità automatica.
-
In
Modalità di scalabilità automatica , seleziona On: aggiungi e rimuovi istanze al gruppo per abilitare la scalabilità automatica. - Specifica il numero minimo e massimo di istanze che il gestore della scalabilità automatica dovrà creare in questo gruppo.
-
Se nella sezione Metriche di scalabilità automatica non esiste ancora una metrica Utilizzo CPU, aggiungine una:
-
Fai clic su
Aggiungi metrica . -
In
Tipo di metrica , seleziona Utilizzo CPU. -
Inserisci la metrica Utilizzo CPU target desiderata. Questo valore viene trattato come una percentuale. Ad esempio, per il 75% di utilizzo della CPU, inserisci
75. -
In Scalabilità automatica predittiva, seleziona
Off . Per ulteriori informazioni sulla scalabilità automatica predittiva e per sapere se è adatta al tuo carico di lavoro, consulta Scalabilità basata sulle previsioni. - Fai clic su Fine.
-
Fai clic su
- Puoi impostare un periodo di inizializzazione per indicare al gestore della scalabilità automatica il tempo necessario per l'inizializzazione dell'applicazione. Specificare un periodo di inizializzazione preciso migliora le decisioni del gestore della scalabilità automatica. Ad esempio, durante lo scale out, il gestore della scalabilità automatica ignora i dati provenienti dalle VM che sono ancora in fase di inizializzazione, perché potrebbero non rappresentare il normale utilizzo della tua applicazione. Il periodo di inizializzazione predefinito è di 60 secondi.
- Per creare il gruppo di istanze gestite, fai clic su
Crea .
gcloud
Prima di poter attivare la scalabilità automatica, devi creare un MIG. Segui le istruzioni per creare un MIG con VM limitate a un'unica zona o creare un MIG con VM distribuite in più zone di una regione.
Poi utilizza il sottocomando
set-autoscaling
per abilitare la scalabilità automatica per il gruppo. Ad esempio,
il seguente comando crea un gestore della scalabilità automatica con un utilizzo della CPU target
del 60%. Quando crei un gestore della scalabilità automatica,
oltre al parametro --target-cpu-utilization,
è necessario anche il parametro --max-num-replicas.
Se vuoi, puoi impostare --min-num-replicas indicando il numero minimo di VM che vuoi nel gruppo. Se non imposti il valore minimo, per impostazione predefinita il MIG imposta questo valore su 2.
Puoi impostare il flag --cool-down-period per impostare il periodo di inizializzazione, che indica al
gestore della scalabilità automatica il tempo necessario per l'inizializzazione dell'applicazione. Specificando un periodo di inizializzazione
preciso è possibile migliorare le decisioni del gestore della scalabilità automatica. Ad esempio, durante lo scale out, il gestore della scalabilità automatica ignora i dati provenienti dalle VM che sono ancora in fase di inizializzazione, perché potrebbero non rappresentare il normale utilizzo della tua applicazione. Il periodo di inizializzazione predefinito è di 60 secondi.
gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \ --max-num-replicas 20 \ --target-cpu-utilization 0.60 \ --cool-down-period 90
Se vuoi, puoi attivare la scalabilità automatica predittiva per fare lo scale out prima del carico previsto. Per sapere se la scalabilità automatica predittiva è adatta al tuo workload, consulta Scalabilità basata sulle previsioni.
Puoi verificare che la scalabilità automatica sia stata attivata correttamente utilizzando il
comando instance-groups managed describe,
che descrive il MIG corrispondente e fornisce informazioni su
eventuali funzionalità di scalabilità automatica per quel gruppo:
gcloud compute instance-groups managed describe example-managed-instance-group
Terraform
Prima di poter attivare la scalabilità automatica, devi creare un MIG. Segui le istruzioni per creare un MIG con VM limitate a un'unica zona o creare un MIG con VM distribuite in più zone di una regione.
Per configurare la scalabilità automatica in un MIG, puoi utilizzare la risorsa google_compute_autoscaler.
L'esempio seguente configura la scalabilità automatica in base all'utilizzo della CPU in un MIG a livello di zona.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
REST
Prima di poter attivare la scalabilità automatica, devi creare un MIG con VM limitate a un'unica zona o creare un MIG con VM distribuite in più zone di una regione.
Se hai un MIG a livello di zona, invia una richiesta POST al metodo autoscalers.insert. Se hai un MIG a livello di regione, utilizza il
metodo regionAutoscalers.insert.
Ad esempio:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/
Il corpo della richiesta deve contenere i campi name, target e
autoscalingPolicy. Il campo autoscalingPolicy deve definire il valore cpuUtilization e il valore maxNumReplicas target.
Se vuoi, puoi impostare minNumReplicas indicando il numero minimo di VM che vuoi nel gruppo. Se non imposti il valore minimo, per impostazione predefinita il MIG imposta questo valore su 2.
Puoi impostare il campo coolDownPeriodSec in modo da configurare un periodo di inizializzazione che indichi al
gestore della scalabilità automatica il tempo necessario per inizializzare l'applicazione. Specificando un periodo di inizializzazione
preciso è possibile migliorare le decisioni del gestore della scalabilità automatica. Ad esempio, durante lo scale out, il gestore della scalabilità automatica ignora i dati provenienti dalle VM che sono ancora in fase di inizializzazione, perché potrebbero non rappresentare il normale utilizzo della tua applicazione. Il periodo di inizializzazione predefinito è di 60 secondi.
{
"name": "example-autoscaler",
"target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
"autoscalingPolicy": {
"maxNumReplicas": 10,
"cpuUtilization": {
"utilizationTarget": 0.6
},
"coolDownPeriodSec": 90
}
}
Se vuoi, puoi attivare la scalabilità automatica predittiva per fare lo scale out prima del carico previsto. Per sapere se la scalabilità automatica predittiva è adatta al tuo workload, consulta Scalabilità basata sulle previsioni.
Per ulteriori informazioni sull'attivazione della scalabilità automatica basata sull'utilizzo della CPU, consulta Scalabilità basata sull'utilizzo della CPU.
Passaggi successivi
- Scopri di più sulla scalabilità automatica e sui diversi tipi di indicatori di scalabilità che puoi aggiungere a una policy di scalabilità automatica.
- Scopri di più sulla gestione dei gestori della scalabilità automatica.
- Configura la riparazione automatica basata su applicazione, che verifica periodicamente che l'applicazione risponda come previsto su ogni VM del MIG e ricrea automaticamente le VM che non rispondono.
- Scopri come applicare una nuova configurazione a tutte le VM o a un sottoinsieme di VM in un MIG impostando e applicando un nuovo template di istanza, una configurazione per tutte le istanze o una configurazione per istanza.
- Scopri come aggiungere un frontend del bilanciatore del carico HTTP(S) esterno al tuo gruppo di istanze. Per informazioni su altri tipi di bilanciatori del carico, consulta Panoramica del bilanciamento del carico.