Questa pagina mostra come scalare automaticamente i cluster Standard Google Kubernetes Engine (GKE). 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 del provisioning dei nodi o della gestione dei node pool perché i node pool vengono sottoposti a provisioning automatico tramite il provisioning automatico dei nodi, e vengono scalati automaticamente per soddisfare i requisiti dei tuoi workload.
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 scalabilità automatica
Puoi creare un cluster con la scalabilità automatica abilitata utilizzando Google Cloud CLI o la Google Cloud console.
gcloud
Per creare un cluster con la scalabilità automatica abilitata, utilizza il flag --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 \
--location=CONTROL_PLANE_LOCATION
Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster da creare.NUM_NODES: il numero di nodi da creare in ogni località.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. I flag--total-min-nodese--total-max-nodessi escludono a vicenda con i flag--min-nodese--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. I flag--total-min-nodese--total-max-nodessi escludono a vicenda con i flag--min-nodese--max-nodes.CONTROL_PLANE_LOCATION: la località Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster a livello di zona.
Esempio: creazione di un cluster con la scalabilità automatica dei nodi abilitata e nodi minimi e massimi
Il seguente comando crea un cluster con 90 nodi o 30 nodi in ciascuna delle 3 zone presenti nella regione. La scalabilità automatica dei nodi è abilitata e ridimensiona il numero di nodi in base a l carico del cluster. Il gestore della scalabilità automatica dei cluster può ridurre le dimensioni del pool di nodi predefinito a 15 nodi o aumentare 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 \
--location=us-central1
Esempio: creazione di un cluster con la scalabilità automatica dei nodi abilitata e nodi totali
Il seguente comando crea un cluster con 30 nodi o 10 nodi in ciascuna delle 3 zone presenti nella regione. La scalabilità automatica dei nodi è abilitata e ridimensiona il numero di nodi in base a l 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 \
--location us-central1 \
--total-min-nodes 10 --total-max-nodes 60
Console
Per creare un nuovo cluster in cui il pool di nodi predefinito ha la scalabilità automatica abilitata:
Nella Google Cloud console, vai alla pagina Crea un cluster Kubernetes.
Configura il cluster come preferisci.
Nel riquadro di navigazione, in Pool di nodi, fai clic su default-pool.
Seleziona la casella di controllo Abilita la scalabilità automatica.
Modifica i valori dei campi Numero minimo di nodi e Numero massimo di nodi come preferisci.
Fai clic su Crea.
Aggiunta di un pool di nodi con scalabilità automatica
Puoi creare un pool di nodi con la scalabilità automatica abilitata utilizzando la gcloud CLI o la Google Cloud console.
gcloud
Per aggiungere un pool di nodi con la scalabilità automatica a un cluster esistente, utilizza il seguente comando:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-autoscaling \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--location=CONTROL_PLANE_LOCATION
Sostituisci quanto segue:
POOL_NAME: il nome del pool di nodi desiderato.CLUSTER_NAME: il nome del cluster in cui viene creato il pool di nodi.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. I flag--total-min-nodese--total-max-nodessi escludono a vicenda con i flag--min-nodese--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. I flag--total-min-nodese--total-max-nodessi escludono a vicenda con i flag--min-nodese--max-nodes.CONTROL_PLANE_LOCATION: la località Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster a livello di zona.
Esempio: aggiunta di un pool di nodi con la scalabilità automatica dei nodi abilitata
Il seguente comando crea un pool di nodi con la scalabilità automatica dei nodi che scala il pool di nodi fino 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 \
--location us-central1-c
Console
Per aggiungere un pool di nodi con la scalabilità automatica a un cluster esistente:
Vai alla pagina Google Kubernetes Engine nella Google Cloud console.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Fai clic sulla scheda Nodi.
Fai clic su add_box Crea node pool gestito dall'utente.
Configura il pool di nodi come preferisci.
In Dimensioni, seleziona la casella di controllo Abilita la scalabilità automatica.
Modifica i valori dei campi Numero minimo di nodi e Numero massimo di nodi come preferisci.
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 la gcloud CLI o la Google Cloud console.
gcloud
Per abilitare la scalabilità automatica per un pool di nodi esistente, utilizza il seguente comando:
gcloud container clusters update CLUSTER_NAME \
--enable-autoscaling \
--node-pool=POOL_NAME \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--location=CONTROL_PLANE_LOCATION
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, forniscidefault-poolcome valore.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. I flag--total-min-nodese--total-max-nodessi escludono a vicenda con i flag--min-nodese--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. I flag--total-min-nodese--total-max-nodessi escludono a vicenda con i flag--min-nodese--max-nodes.CONTROL_PLANE_LOCATION: la località Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster a livello di zona.
Console
Per abilitare la scalabilità automatica per un pool di nodi esistente:
Vai alla pagina Google Kubernetes Engine nella Google Cloud console.
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 node pool che vuoi modificare, quindi fai clic su edit Modifica.
In Dimensioni, seleziona la casella di controllo Abilita la scalabilità automatica.
Modifica i valori dei campi Numero minimo di nodi e Numero massimo di nodi come preferisci.
Fai clic su Salva.
Verifica che la scalabilità automatica per il pool di nodi esistente sia abilitata
Puoi verificare che il cluster utilizzi la scalabilità automatica con Google Cloud CLI o la Google Cloud console.
gcloud
Descrivi i node pool nel cluster:
gcloud container node-pools describe NODE_POOL_NAME --cluster=CLUSTER_NAME |grep autoscaling -A 1
Sostituisci quanto segue:
NODE_POOL_NAME: il nome del nuovo pool di nodi che hai scelto.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 Google Cloud console.
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 node pool
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 dei 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 scelto.CLUSTER_NAME: il nome del cluster.
Disabilitazione della scalabilità automatica per un pool di nodi esistente
Puoi disabilitare la scalabilità automatica per un pool di nodi esistente utilizzando il gcloud CLI o la Google Cloud console.
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 \
--location=CONTROL_PLANE_LOCATION
Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster da aggiornare.POOL_NAME: il nome del pool di nodi desiderato.CONTROL_PLANE_LOCATION: la località Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster a livello di zona.
Le dimensioni del cluster sono fisse alle dimensioni attuali del pool di nodi predefinito del cluster, che possono essere aggiornate manualmente.
Console
Per disabilitare la scalabilità automatica per un pool di nodi specifico:
Vai alla pagina Google Kubernetes Engine nella Google Cloud console.
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 node pool che vuoi modificare, quindi fai clic su edit Modifica.
In Dimensioni, deseleziona la casella di controllo Abilita la scalabilità automatica.
Fai clic su Salva.
Ridimensionamento di un pool di nodi
Per i cluster con la scalabilità automatica abilitata, il gestore della scalabilità automatica dei cluster ridimensiona automaticamente i node pool entro i limiti specificati dai valori di dimensione minima (--min-nodes) e dimensione massima (--max-nodes) o dalla dimensione totale minima (--total-min-nodes) e dalla dimensione totale massima (--total-max-nodes). Questi flag si escludono a vicenda. Non puoi ridimensionare manualmente un pool di nodi modificando questi valori.
Se vuoi ridimensionare manualmente un pool di nodi nel cluster con la scalabilità automatica abilitata:
- Disabilita la scalabilità automatica nel node pool.
- Ridimensiona manualmente il cluster.
- Riabilita la scalabilità automatica e specifica le dimensioni minime e massime del node pool.
Impedire la pianificazione dei pod su nodi selezionati
Puoi utilizzare le incompatibilità startup o status per impedire la pianificazione dei pod su nodi selezionati, a seconda del caso d'uso.
Questa funzionalità è disponibile in GKE nella versione 1.28 e successive.
Incompatibilità di avvio
Utilizza le incompatibilità startup quando è necessario completare un'operazione prima che i pod possano essere eseguiti sul nodo. Ad esempio, i pod non devono essere eseguiti finché non viene completata l'installazione dei driver sul nodo.
Il gestore della scalabilità automatica dei cluster considera i nodi con incompatibilità startup come non pronti, ma li prende in considerazione durante la logica di fare lo scale up, presupponendo che diventeranno pronti a breve.
Le incompatibilità di avvio sono definite come tutte le incompatibilità con il prefisso startup-taint.cluster-autoscaler.kubernetes.io/
Incompatibilità di stato
Utilizza le incompatibilità status quando GKE non deve utilizzare un determinato nodo per eseguire i pod.
Il gestore della scalabilità automatica dei cluster considera i nodi con incompatibilità status come pronti, ma li ignora durante la logica di fare lo scale up. Anche se il nodo con incompatibilità è pronto, non devono essere eseguiti pod. Se i pod richiedono più risorse, GKE esegue lo scale up del cluster e ignora i nodi con incompatibilità.
Le incompatibilità di stato sono definite come tutte le incompatibilità con il prefisso status-taint.cluster-autoscaler.kubernetes.io/
Ignora incompatibilità
Le incompatibilità di ignoranza sono definite come tutte le incompatibilità con il prefisso ignore-taint.cluster-autoscaler.kubernetes.io/
Risoluzione dei problemi
Per suggerimenti sulla risoluzione dei problemi, consulta le seguenti pagine:
- Risoluzione dei problemi relativi al gestore della scalabilità automatica dei cluster che non esegue lo scale down.
- Risoluzione dei problemi relativi al gestore della scalabilità automatica dei cluster che non esegue lo scale up.
Passaggi successivi
- Scopri di più sul gestore della scalabilità automatica dei cluster.
- Consulta una panoramica della creazione automatica dei node pool.
- Scopri come configurare la creazione automatica dei node pool.
- Scopri di più sulla visibilità del gestore della scalabilità automatica dei cluster.
- Scopri come ridimensionare un cluster.