Questo documento descrive come eseguire la scalabilità di un gruppo di istanze gestite (MIG) in base alla capacità di gestione di un bilanciatore del carico delle applicazioni esterno o interno. Ciò significa che la scalabilità automatica aggiunge o rimuove istanze VM nel gruppo quando il bilanciatore del carico indica che il gruppo ha raggiunto una frazione configurabile della sua completezza. La completezza è definita dalla capacità target della modalità di bilanciamento selezionata del gruppo di istanze di backend.
Puoi anche scalare un MIG in base all' utilizzo della CPU o alle metriche di Monitoring.
Limitazioni
Puoi scalare automaticamente un gruppo di istanze gestite in base alla capacità di gestione di un bilanciatore del carico delle applicazioni esterno e di un bilanciatore del carico delle applicazioni interno. Altri tipi di bilanciatori del carico non sono supportati.
Prima di iniziare
- Esamina le limitazioni del gestore della scalabilità automatica.
- Scopri i concetti fondamentali del gestore della scalabilità automatica.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è
il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Google Cloud .
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Vai alla pagina Gruppi di istanze nella console Google Cloud .
- Se disponi di un gruppo di istanze, selezionalo, poi fai clic su Modifica. Altrimenti, fai clic su Crea gruppo di istanze.
- 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.
- Nella sezione Indicatori di scalabilità automatica, fai clic su Aggiungi un indicatore.
- Imposta il Tipo di indicatore su Utilizzo bilanciamento del carico HTTP.
Inserisci l'Utilizzo bilanciamento del carico HTTP target. Questo valore viene trattato come una percentuale. Ad esempio, per un utilizzo del bilanciamento del carico HTTP del 60%, inserisci
60
.Puoi utilizzare il periodo di attesa per impostare il periodo di inizializzazione, che indica 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 ancora il normale utilizzo della tua applicazione. Il periodo di inizializzazione predefinito è di 60 secondi.
Salva le modifiche.
- Scopri di più sull'organizzazione dei gestori della scalabilità automatica.
- Scopri il processo decisionale dei gestori della scalabilità automatica.
- Scopri come utilizzare più indicatori di scalabilità automatica per scalare il gruppo.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.
Scalabilità basata sulla capacità di gestione del bilanciamento del carico HTTP(S)
Compute Engine fornisce il supporto per il bilanciamento del carico all'interno dei tuoi gruppi di istanze. Puoi utilizzare la scalabilità automatica in combinazione con il bilanciamento del carico impostando un gestore della scalabilità automatica che scala in base al carico delle istanze.
Un bilanciatore del carico HTTP(S) esterno o interno distribuisce le richieste ai servizi di backend in base alla mappa URL. Il bilanciatore del carico può avere uno o più servizi di backend, ciascuno dei quali supporta i backend di gruppi di istanze o gruppi di endpoint di rete (NEG). Quando i backend sono gruppi di istanze, il bilanciatore del carico HTTP(S) offre due modalità di bilanciamento:
UTILIZATION
eRATE
. ConUTILIZATION
, puoi specificare un target massimo per l'utilizzo medio del backend delle istanze nel gruppo di istanze. ConRATE
, devi specificare un numero target di richieste al secondo a livello di istanza o di gruppo. Solo i gruppi di istanze a livello di zona consentono di definire una velocità massima per l'intero gruppo. I gruppi di istanze gestite a livello di regione non consentono di definire una velocità massima per gruppo.La modalità di bilanciamento e la capacità target specificate definiscono le condizioni in cui Google Cloud determina quando una VM di backend è a piena capacità. Google Cloud tenta di inviare traffico alle VM integre che hanno anocra capacità rimanente. Se tutte le VM sono già al limite di capacità, la velocità o l'utilizzo target viene superato.
Quando colleghi un gestore della scalabilità automatica al backend di gruppo di istanze di un bilanciatore del carico HTTP(S), il gestore della scalabilità automatica scala il gruppo di istanze gestite per mantenere una frazione della capacità di gestione del bilanciamento del carico.
Ad esempio, supponiamo che la capacità di gestione di bilanciamento del carico di un gruppo di istanze gestite sia 100 RPS per istanza. Se crei un gestore della scalabilità automatica con la policy di bilanciamento del carico HTTP(S) e lo imposti in modo che mantenga un livello di utilizzo target di 0,8 o dell'80%, il gestore della scalabilità automatica aggiunge o rimuove istanze dal gruppo di istanze gestite per mantenere l'80% della capacità di gestione o 80 RPS per istanza.
Il seguente diagramma mostra come il gestore della scalabilità automatica interagisce con un gruppo di istanze gestite e un servizio di backend:
Il gestore della scalabilità automatica monitora la capacità di gestione del gruppo di istanze gestite, che viene definita nel servizio di backend, e scala in base all'utilizzo target. In questo esempio, la capacità di gestione viene misurata nel valore maxRatePerInstance
.Configurazioni di bilanciamento del carico applicabili
Per la capacità di gestione del bilanciamento del carico puoi impostare una di tre opzioni. Quando crei per la prima volta il backend, puoi scegliere tra utilizzo massimo del backend, richieste al secondo massime per istanza o richieste massime al secondo dell'intero gruppo. È possibile usare la scalabilità automatica solo con utilizzo massimo del backend e richieste per secondo massime/istanza, in quanto il loro valore può essere controllato aggiungendo o rimuovendo istanze. Ad esempio, se imposti un backend in modo che gestisca 10 richieste al secondo per istanza e il gestore della scalabilità automatica è configurato per mantenere l'80% di questa frequenza, il gestore della scalabilità automatica può aggiungere o rimuovere istanze quando le richieste al secondo per istanza cambiano.
La scalabilità automatica non funziona con le richieste massime per gruppo, perché questa impostazione è indipendente dal numero di istanze presenti nel gruppo. Il bilanciatore del carico invia continuamente il numero massimo di richieste per gruppo al gruppo di istanze, indipendentemente dal numero di istanze nel gruppo.
Ad esempio, se imposti il backend in modo che gestisca un massimo di 100 richieste al secondo per gruppo, il bilanciatore del carico invia al gruppo 100 richieste al secondo, indipendentemente dal fatto che il gruppo abbia due o 100 istanze. Poiché questo valore non può essere modificato, è impossibile utilizzare la scalabilità automatica con una configurazione di bilanciamento del carico che utilizza il numero massimo di richieste al secondo per gruppo.
Abilita la scalabilità automatica in base alla capacità di gestione del bilanciamento del carico
Console
gcloud
Per abilitare un gestore della scalabilità automatica che scala in base alla capacità di gestione, utilizza il sottocomando
set-autoscaling
. Ad esempio, il seguente comando crea un gestore della scalabilità automatica che scala il gruppo di istanze gestite target in modo da mantenere il 60% della capacità di gestione. Quando crei un gestore della scalabilità automatica, oltre al parametro--target-load-balancing-utilization
, è necessario anche il parametro--max-num-replicas
:gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \ --max-num-replicas 20 \ --target-load-balancing-utilization 0.6 \ --cool-down-period 90
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 ancora il normale utilizzo della tua applicazione. Il periodo di inizializzazione predefinito è di 60 secondi.Puoi verificare che il gestore della scalabilità automatica sia stato creato correttamente utilizzando il sottocomando
instance-groups managed describe
:gcloud compute instance-groups managed describe example-managed-instance-group
Per un elenco dei comandi e dei flag
gcloud
disponibili, consulta la documentazione di riferimento digcloud
.REST
Per creare un gestore della scalabilità automatica, utilizza il metodo
autoscalers.insert
per un MIG a livello di zona o il metodoregionAutoscalers.insert
per un MIG a livello di regione.L'esempio seguente crea un gestore della scalabilità automatica per un MIG a livello di zona:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/
Il corpo della richiesta deve contenere i campi
name
,target
eautoscalingPolicy
.autoscalingPolicy
deve definireloadBalancingUtilization
.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 ancora il normale utilizzo della tua applicazione. Il periodo di inizializzazione predefinito è di 60 secondi.{ "name": "example-autoscaler", "target": "zones/us-central1-f/instanceGroupManagers/example-managed-instance-group", "autoscalingPolicy": { "maxNumReplicas": 20, "loadBalancingUtilization": { "utilizationTarget": 0.8 }, "coolDownPeriodSec": 90 } }
Per ulteriori informazioni sull'attivazione della scalabilità automatica in base alla capacità di gestione di bilanciamento del carico, completa il tutorial Scalabilità automatica globale di un servizio web su Compute Engine.
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-04 UTC.
-