Crea un gruppo di istanze gestite con scalabilità automatica abilitata

Questo documento descrive come creare un gruppo di istanze gestite 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 gruppo di istanze gestite.

Prima di iniziare

  • Crea un modello di istanza, necessario per creare un gruppo di istanze gestite.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    Terraform

    Per utilizzare gli esempi Terraform in questa pagina da un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.

    1. Installa Google Cloud CLI.
    2. Per initialize gcloud CLI, esegui questo comando:

      gcloud init
    3. Crea credenziali di autenticazione locali per il tuo Account Google:

      gcloud auth application-default login

    Per ulteriori informazioni, 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, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Limitazioni

Per visualizzare l'elenco completo delle limitazioni dei gruppi di istanze gestite, che varia in base alla configurazione utilizzata, consulta Limitazioni dei gruppi di istanze gestite.

Crea un MIG e abilita la scalabilità automatica

Utilizza la console Google Cloud, gcloud CLI, Terraform o REST.

Console

  1. Nella console, vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

    I passaggi rimanenti verranno visualizzati automaticamente nella console Google Cloud.

  2. 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.
  3. Per un nuovo gruppo di istanze, assegna un nome, quindi scegli un modello di istanza per il gruppo di istanze, oppure creane uno nuovo.
  4. Se non esiste una configurazione di scalabilità automatica, in Scalabilità automatica, fai clic su Configura scalabilità automatica.
  5. In Modalità di scalabilità automatica, seleziona On: aggiungi e rimuovi istanze al gruppo per abilitare la scalabilità automatica.
  6. Specifica il numero minimo e massimo di istanze che il gestore della scalabilità automatica dovrà creare in questo gruppo.
  7. Se nella sezione Metriche di scalabilità automatica non esiste ancora una metrica Utilizzo CPU, aggiungine una:
    1. Fai clic su Aggiungi metrica.
    2. In Tipo di metrica, seleziona Utilizzo CPU.
    3. 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.
    4. 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.
    5. Fai clic su Fine.
  8. 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.
  9. Per creare il gruppo di istanze gestite, fai clic su Crea.

gcloud

Prima di poter abilitare la scalabilità automatica, devi creare un gruppo di istanze gestite. Segui le istruzioni per creare un gruppo di istanze gestite con VM limitate a una singola zona o creare un gruppo di istanze gestite con VM distribuite in più zone in una regione.

Quindi 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%. Insieme al parametro --target-cpu-utilization, è richiesto anche il parametro --max-num-replicas durante la creazione di un gestore della scalabilità automatica.

Se vuoi, puoi impostare --min-num-replicas per indicare il numero minimo di VM che vuoi inserire nel gruppo. Se non imposti il valore minimo, per impostazione predefinita il gruppo di istanze gestite imposta questo valore su 2.

Puoi usare 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. 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.

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 abilitare la scalabilità automatica predittiva per lo scale out prima del carico previsto. Per scoprire se la scalabilità automatica predittiva è adatta al tuo carico di lavoro, consulta Scalabilità basata sulle previsioni.

Puoi verificare che la scalabilità automatica sia stata abilitata correttamente utilizzando il comando instance-groups managed describe, che descrive il gruppo di istanze gestite corrispondente e fornisce informazioni su eventuali funzionalità di scalabilità automatica per il gruppo:

gcloud compute instance-groups managed describe example-managed-instance-group

Terraform

Prima di poter abilitare la scalabilità automatica, devi creare un gruppo di istanze gestite. Segui le istruzioni per creare un gruppo di istanze gestite con VM limitate a una singola zona o creare un gruppo di istanze gestite con VM distribuite in più zone in una regione.

Per configurare la scalabilità automatica in un gruppo di istanze gestite, puoi utilizzare la risorsa google_compute_autoscaler.

L'esempio seguente configura la scalabilità automatica in base all'utilizzo della CPU in un gruppo di istanze gestite a livello di zona.

resource "google_compute_autoscaler" "default" {
  name   = "example-autoscaler"
  zone   = "us-central1-f"
  target = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 20
    min_replicas    = 0
    cooldown_period = 90

    cpu_utilization {
      target = 0.60
    }
  }
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

REST

Prima di poter abilitare la scalabilità automatica, devi creare un gruppo di istanze gestite con VM limitate a una singola zona o creare un gruppo di istanze gestite con VM distribuite in più zone in una regione.

Se hai un gruppo di istanze gestite a livello di zona, effettua una richiesta POST al metodo autoscalers.insert. Se hai un gruppo di istanze gestite 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 target e il valore maxNumReplicas.

Se vuoi, puoi impostare minNumReplicas per indicare il numero minimo di VM che vuoi inserire nel gruppo. Se non imposti il valore minimo, per impostazione predefinita il gruppo di istanze gestite imposta questo valore su 2.

Puoi utilizzare il campo coolDownPeriodSec per impostare il periodo di inizializzazione, che indica 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.

{
  "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 abilitare la scalabilità automatica predittiva per lo scale out prima del carico previsto. Per scoprire se la scalabilità automatica predittiva è adatta al tuo carico di lavoro, consulta Scalabilità basata sulle previsioni.

Per saperne di più sull'abilitazione della scalabilità automatica in base all'utilizzo della CPU, consulta Scalabilità basata sull'utilizzo della CPU.

Passaggi successivi