Questa pagina mostra come eseguire il ridimensionamento automatico dei cluster Google Kubernetes Engine (GKE) standard. Per scoprire come funziona il gestore della scalabilità automatica dei cluster, consulta Gestore della scalabilità automatica dei cluster.
Con i cluster Autopilot, non devi preoccuparti di eseguire il provisioning dei nodi o di gestire i pool di nodi, perché i pool di nodi vengono provisionati automaticamente tramite il provisioning automatico dei nodi e scalati automaticamente per soddisfare i requisiti dei tuoi carichi di lavoro.
Utilizzo del gestore della scalabilità automatica dei cluster
Le sezioni seguenti spiegano come utilizzare il gestore della scalabilità automatica dei cluster.
Creazione di un cluster con la scalabilità automatica
Puoi creare un cluster con scalabilità automatica abilitata utilizzando Google Cloud CLI o la console Google Cloud.
gcloud
Per creare un cluster con scalabilità automatica abilitata, utilizza --enable-autoscaling
e specifica --min-nodes
e --max-nodes
:
gcloud container clusters create CLUSTER_NAME \
--enable-autoscaling \
--num-nodes NUM_NODES \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES \
--region=COMPUTE_REGION
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster da creare.NUM_NODES
: il numero di nodi da creare in ogni posizione.MIN_NODES
: il numero minimo di nodi da scalare automaticamente per il pool di nodi specificato per zona. Per specificare il numero minimo di nodi per l'intero pool di nodi nelle versioni GKE 1.24 e successive, utilizza--total-min-nodes
. Le bandiere--total-min-nodes
e--total-max-nodes
si escludono a vicenda con i flag--min-nodes
e--max-nodes
.MAX_NODES
: il numero massimo di nodi da la scalabilità automatica per il pool di nodi specificato per zona. Per specificare il numero massimo di nodi per l'intero pool di nodi nelle versioni GKE 1.24 e successive, utilizza--total-max-nodes
. I flag--total-min-nodes
e--total-max-nodes
si escludono a vicenda con i flag--min-nodes
e--max-nodes
.COMPUTE_REGION
: la regione Compute Engine per il nuovo cluster. Per i cluster di zona, utilizza--zone=COMPUTE_ZONE
.
Esempio: creazione di un cluster con scalabilità automatica dei nodi abilitata e numero minimo e massimo di nodi
Il comando seguente crea un cluster con 90 nodi o 30 nodi in per ognuna delle tre zone presenti nella regione. La scalabilità automatica dei nodi è abilitata e ridimensiona il numero di nodi in base al carico del cluster. Il gestore della scalabilità automatica dei cluster può ridurre le dimensioni del pool di nodi predefinito a 15 nodi o aumenta il pool di nodi fino a un massimo di 50 nodi per zona.
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes=30 \
--min-nodes=15 --max-nodes=50 \
--region=us-central
Esempio: creazione di un cluster con la scalabilità automatica dei nodi abilitata e il numero totale di nodi
Il seguente comando crea un cluster con 30 nodi o 10 nodi in ciascuna delle tre zone presenti nella regione. La scalabilità automatica dei nodi è abilitata e ridimensiona il numero di nodi in base al carico del cluster. In questo esempio, la dimensione totale del cluster può essere compresa tra 10 e 60 nodi, indipendentemente dalla distribuzione tra le zone.
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes 10 \
--region us-central1 \
--total-min-nodes 10 --total-max-nodes 60
Console
Per creare un nuovo cluster in cui il pool di nodi predefinito dispone di scalabilità automatica attivato:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
Configura il cluster come preferisci.
Nel riquadro di navigazione, in Pool di nodi, fai clic su default-pool.
Seleziona la casella di controllo Attiva la scalabilità automatica.
Modifica i valori di Numero minimo di nodi e Numero massimo di nodi. campi in base alle tue esigenze.
Fai clic su Crea.
Aggiunta di un pool di nodi con scalabilità automatica
Puoi creare un pool di nodi con scalabilità automatica abilitata utilizzando il metodo con gcloud CLI o la console Google Cloud.
gcloud
Per aggiungere un pool di nodi con scalabilità automatica a un cluster esistente, utilizza seguente comando:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-autoscaling \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--region=COMPUTE_REGION
Sostituisci quanto segue:
POOL_NAME
: il nome del pool di nodi desiderato.CLUSTER_NAME
: il nome del cluster in cui viene creato un pool di nodi.MIN_NODES
: il numero minimo di nodi da la scalabilità automatica per il pool di nodi specificato per zona. Per specificare il numero minimo di nodi per l'intero pool di nodi nelle versioni GKE 1.24 e successive, utilizza--total-min-nodes
. I flag--total-min-nodes
e--total-max-nodes
si escludono a vicenda con i flag--min-nodes
e--max-nodes
.MAX_NODES
: il numero massimo di nodi da scalare automaticamente per il pool di nodi specificato per zona. Per specificare il numero massimo di nodi per l'intero pool di nodi nelle versioni GKE 1.24 e successive, utilizza--total-max-nodes
. Le bandiere--total-min-nodes
e--total-max-nodes
si escludono a vicenda con i flag--min-nodes
e--max-nodes
.COMPUTE_REGION
: il Regione di Compute Engine per il nuovo cluster. Per i cluster di zona, usa--zone=COMPUTE_ZONE
.
Esempio: aggiunta di un pool di nodi con la scalabilità automatica dei nodi abilitata
Il comando seguente crea un pool di nodi con scalabilità automatica dei nodi scalabile del pool di nodi a un massimo di 5 nodi e un minimo di 1 nodo:
gcloud container node-pools create my-node-pool \
--cluster my-cluster \
--enable-autoscaling \
--min-nodes 1 --max-nodes 5 \
--zone us-central1-c
Console
Per aggiungere un pool di nodi con scalabilità automatica a un cluster esistente:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic su add_box Aggiungi pool di nodi.
Configura il pool di nodi come preferisci.
In Dimensioni, seleziona la casella di controllo Abilita scalabilità automatica.
Modifica i valori dei campi Numero minimo di nodi e Numero massimo di nodi in base alle tue esigenze.
Fai clic su Crea.
Abilitazione della scalabilità automatica per un pool di nodi esistente
Puoi abilitare la scalabilità automatica per un pool di nodi esistente utilizzando l'interfaccia a riga di comando gcloud o la console Google Cloud.
gcloud
Per abilitare la scalabilità automatica per un pool di nodi esistente, utilizza quanto segue :
gcloud container clusters update CLUSTER_NAME \
--enable-autoscaling \
--node-pool=POOL_NAME \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--region=COMPUTE_REGION
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster da aggiornare.POOL_NAME
: il nome del pool di nodi desiderato. Se hai un solo pool di nodi, specificadefault-pool
come valore.MIN_NODES
: il numero minimo di nodi da scalare automaticamente per il pool di nodi specificato per zona. Per specificare numero minimo di nodi per l'intero pool di nodi in GKE 1.24 e versioni successive, utilizza--total-min-nodes
. I flag--total-min-nodes
e--total-max-nodes
si escludono a vicenda con i flag--min-nodes
e--max-nodes
.MAX_NODES
: il numero massimo di nodi da la scalabilità automatica per il pool di nodi specificato per zona. Per specificare numero massimo di nodi per l'intero pool di nodi in GKE 1.24 e versioni successive, utilizza--total-max-nodes
. Le bandiere--total-min-nodes
e--total-max-nodes
si escludono a vicenda con i flag--min-nodes
e--max-nodes
.COMPUTE_REGION
: la regione Compute Engine per il nuovo cluster. Per i cluster di zona, usa--zone=COMPUTE_ZONE
.
Console
Per abilitare la scalabilità automatica per un pool di nodi esistente:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic sulla scheda Nodi.
In Pool di nodi, fai clic sul nome del pool di nodi che vuoi modificare, poi su edit Modifica.
In Dimensioni, seleziona la casella di controllo Abilita scalabilità automatica.
Modifica i valori di Numero minimo di nodi e Numero massimo. di nodi in base alle tue esigenze.
Fai clic su Salva.
Verificare che la scalabilità automatica per il pool di nodi esistente sia abilitata
Verifica che il cluster utilizzi l'autoscaling con la CLI Google Cloud o la console Google Cloud.
gcloud
Descrivi i pool di nodi nel cluster:
gcloud container node-pools describe NODE_POOL_NAME --cluster=CLUSTER_NAME |grep autoscaling -A 1
Sostituisci quanto segue:
POOL_NAME
: il nome del nuovo pool di nodi che hai scegliere.CLUSTER_NAME
: il nome del cluster.
Se la scalabilità automatica è abilitata, l'output è simile al seguente:
autoscaling:
enabled: true
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster da verificare.
Fai clic sulla scheda Nodi.
In Pool di nodi, verifica lo stato del pool di nodi
Autoscalling
.
Creazione di un pool di nodi che dà la priorità all'ottimizzazione delle prenotazioni inutilizzate
Puoi utilizzare il flag --location_policy=ANY
quando crei un pool di nodi per indicare al gestore della scalabilità automatica del cluster di dare la priorità all'utilizzo delle prenotazioni inutilizzate:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location_policy=ANY
Sostituisci quanto segue:
POOL_NAME
: il nome del nuovo pool di nodi che hai scegliere.CLUSTER_NAME
: il nome del cluster.
Disattivazione della scalabilità automatica per un pool di nodi esistente
Puoi disabilitare la scalabilità automatica per un pool di nodi esistente utilizzando con gcloud CLI o la console Google Cloud.
gcloud
Per disabilitare la scalabilità automatica per un pool di nodi specifico, utilizza il flag --no-enable-autoscaling
:
gcloud container clusters update CLUSTER_NAME \
--no-enable-autoscaling \
--node-pool=POOL_NAME \
--region=COMPUTE_REGION
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster da aggiornare.POOL_NAME
: il nome del pool di nodi desiderato.COMPUTE_REGION
: la regione Compute Engine per il nuovo cluster. Per i cluster di zona, usa--zone=COMPUTE_ZONE
.
Le dimensioni del cluster sono fisse in base alle dimensioni attuali predefinite del pool di nodi, che possono essere aggiornati manualmente.
Console
Per disattivare la scalabilità automatica per un pool di nodi specifico:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic sulla scheda Nodi.
In Pool di nodi, fai clic sul nome del pool di nodi che vuoi modificare, quindi su edit Modifica.
In Dimensioni, deseleziona la casella di controllo Abilita scalabilità automatica.
Fai clic su Salva.
Ridimensionamento di un pool di nodi
Per i cluster con scalabilità automatica abilitata, il gestore della scalabilità automatica dei cluster
ridimensiona i pool di nodi entro i limiti specificati dalla dimensione minima
(--min-nodes
) e dimensioni massime (--max-nodes
) o il totale minimo
dimensioni (--total-min-nodes
) e dimensioni totali massime (--total-max-nodes
). Questi
si escludono a vicenda. Non puoi ridimensionare manualmente un pool di nodi modificando
questi valori.
Se vuoi ridimensionare manualmente un pool di nodi nel tuo cluster con scalabilità automatica attiva, esegui queste operazioni:
- Disattiva la scalabilità automatica nel pool di nodi.
- Ridimensiona manualmente il cluster.
- Riattiva la scalabilità automatica e specifica le dimensioni minime e massime del pool di nodi.
Impedire la pianificazione dei pod su nodi selezionati
Puoi utilizzare le incompatibilità startup
o status
per impedire la pianificazione dei pod sui nodi selezionati, a seconda del caso d'uso.
Questa funzionalità è disponibile in GKE 1.28 e versioni successive.
Incompatibilità di avvio
Utilizza le incompatibilità startup
quando è presente un'operazione che deve essere completata prima che qualsiasi pod possa essere eseguito sul nodo. Ad esempio, i pod non devono essere eseguiti fino al termine dell'installazione dei driver sul nodo.
Il gestore della scalabilità automatica dei cluster considera i nodi con incompatibilità startup
come non pronti, ma vengono presi in considerazione durante la logica di scale up, supponendo che saranno pronti a breve.
I taint di avvio sono definiti come tutti i taint con il prefisso startup-taint.cluster-autoscaler.kubernetes.io/
Incompatibilità dello stato
Utilizza le incompatibilità status
quando GKE non deve utilizzare un determinato nodo per eseguire i pod.
Il gestore della scalabilità automatica dei cluster tratta i nodi con impurità status
come pronti, ma li ignora durante la logica di scalabilità automatica. Anche se il nodo incompatibile è pronto, non deve essere eseguito alcun pod. Se i pod richiedono più risorse, GKE esegue lo scale up del cluster e ignora i nodi compromessi.
Le alterazioni dello stato sono definite come tutte le alterazioni con il prefisso status-taint.cluster-autoscaler.kubernetes.io/
Ignora incompatibilità
Le contaminazioni da ignorare sono definite come tutte le contaminazioni con il prefisso ignore-taint.cluster-autoscaler.kubernetes.io/
Risoluzione dei problemi
Per consigli sulla risoluzione dei problemi, consulta le seguenti pagine:
- Risolvi i problemi di scale down del gestore della scalabilità automatica dei cluster.
- Risolvi i problemi relativi allo scale up del gestore della scalabilità automatica dei cluster.
Passaggi successivi
- Scopri di più sul gestore della scalabilità automatica dei cluster.
- Visualizza gli eventi di scalabilità automatica del cluster.