Questo documento descrive il gestore della scalabilità automatica dei cluster, che controlla automaticamente le dimensioni dei pool di nodi. Il gestore della scalabilità automatica dei cluster viene abilitato quando specifichi i valori minimo e massimo per il numero di nodi in un pool di nodi. Puoi specificare questi valori durante la creazione di un pool di nodi o l'aggiornamento di un pool di nodi.
Scala automaticamente un pool di nodi
Il gestore della scalabilità automatica dei cluster ridimensiona automaticamente il numero di nodi in un determinato pool di nodi, in base alle esigenze dei tuoi carichi di lavoro. Non è necessario aggiungere o rimuovere manualmente i nodi o eseguire l'overprovisioning dei pool di nodi. Devi invece specificare le dimensioni minima e massima per il pool di nodi, il resto è automatico.
Se è necessario eliminare o spostare le risorse durante la scalabilità automatica del cluster, i tuoi carichi di lavoro potrebbero subire interruzioni temporanee. Ad esempio, se il carico di lavoro è costituito da un controller con un'unica replica, il pod della replica potrebbe essere ripianificato su un nodo diverso se il nodo attuale viene eliminato. Per questo motivo, devi progettare i carichi di lavoro in modo da tollerare potenziali interruzioni o garantire che i pod critici non vengano interrotti.
Come funziona il gestore della scalabilità automatica dei cluster
Il gestore della scalabilità automatica dei cluster lavora sulla base del pool di nodi. Quando utilizzi il gestore della scalabilità automatica del cluster per configurare un pool di nodi, specifichi una dimensione minima e una massima per il pool di nodi. Puoi modificare la dimensione minima e quella massima quando crei un pool di nodi o aggiorna un pool di nodi.
Il gestore della scalabilità automatica dei cluster aumenta o diminuisce automaticamente le dimensioni del pool di nodi, in base alle richieste di risorse (anziché all'utilizzo effettivo delle risorse) nel pool di nodi. Il gestore della scalabilità automatica dei cluster aggiunge nodi se gli oggetti pod non sono pianificabili e nel pool di nodi non è disponibile capacità sufficiente per soddisfare le richieste.
Il gestore della scalabilità automatica dei cluster rimuove anche i nodi sottoutilizzati e tutti gli oggetti dei pod possono essere pianificati su un numero inferiore di nodi. Se non è possibile eseguire il download in modo controllato del nodo dopo 10 minuti, questo viene arrestato forzatamente. Questo periodo non è configurabile.
Se un pod richiede un numero insufficiente di risorse (ad esempio, se i valori predefiniti sono insufficienti), il gestore della scalabilità automatica dei cluster non corregge la situazione. Puoi contribuire a garantire che il gestore della scalabilità automatica dei cluster operi nel modo più preciso possibile, creando richieste di risorse adeguate per tutti i tuoi carichi di lavoro. Per saperne di più, consulta Gestione delle risorse per i container.
Criteri operativi
Durante il ridimensionamento di un pool di nodi, il gestore della scalabilità automatica dei cluster formula le seguenti ipotesi:
- Tutti gli oggetti pod replicati possono essere riavviati su un altro nodo, causando probabilmente una breve interruzione. Se il carico di lavoro non tollera interruzioni, configuralo per l'esecuzione su un pool di nodi con la scalabilità automatica disabilitata. Per maggiori informazioni, consulta Controllo della pianificazione con le incompatibilità dei nodi.
- Il gestore della scalabilità automatica dei cluster può eseguire l'override di qualsiasi operazione manuale di gestione dei nodi che esegui.
- Tutti i nodi in un singolo pool di nodi hanno lo stesso set di etichette.
- Il gestore della scalabilità automatica dei cluster seleziona un gruppo di nodi con la CPU inattiva o la memoria inutilizzata dopo lo scale up. Questo comportamento influisce sui pool di nodi di cui viene fatto lo scale up se hai dimensioni di nodi diverse (ad esempio, nodi di CPU elevata o nodi ad alta memoria) nello stesso cluster.
Dimensione minima e massima del pool di nodi
Puoi specificare la dimensione minima e massima per ciascun pool di nodi nel cluster
con i flag min-nodes
e max-nodes
. Per disabilitare la scalabilità automatica, imposta
min-nodes
e max-nodes
sullo stesso numero. Il gestore della scalabilità automatica dei cluster prende
decisioni di scalabilità entro i limiti di dimensioni.
Quando imposti la dimensione massima dei pool di nodi, assicurati che siano abbastanza grandi per eseguire tutti i carichi di lavoro. Se i pool di nodi nel cluster non hanno memoria e CPU sufficienti per eseguire tutti i carichi di lavoro, potrebbero verificarsi interruzioni.
Usa PodDisruptionBudget
per proteggere i carichi di lavoro
Puoi configurare GKE su AWS per proteggerti dall'interruzione dei carichi di lavoro con un PodDisruptionBudget
. Quando crei un oggetto PodDisruptionBudget
, specifichi il numero minimo di repliche dei pod che devono essere disponibili o il numero massimo di repliche dei pod che possono non essere disponibili in un determinato momento. Per scoprire di più, consulta la sezione Specificare un budget di interruzione per la tua applicazione.
Fai lo scale up da zero nodi
A partire dai seguenti GKE su versioni AWS, il gestore della scalabilità automatica dei cluster supporta lo scale up dei pool di nodi da zero nodi:
- Versione 1.29 e successive
- Versioni di 1.28 da 1.28.8-gke.800 e successive
- Versioni della 1.27 da 1.27.12-gke.800 e successive
Se utilizzi una versione precedente, per utilizzare questa funzionalità devi eseguire l'upgrade del cluster a una di queste versioni. Per abilitare questa funzionalità per i cluster esistenti, aggiorna il cluster a una versione supportata ed esegui un aggiornamento in sequenza dei pool di nodi aggiornando la versione di Kubernetes. Per saperne di più sull'aggiornamento dei pool di nodi, consulta Aggiornare un pool di nodi.
Il gestore della scalabilità automatica dei cluster rispetta le etichette e le incompatibilità che definisci sui pool di nodi quando prende decisioni di scalabilità, anche quando non sono disponibili nodi come riferimento. GKE su AWS imposta automaticamente i tag di etichetta e di incompatibilità necessarie sul gruppo di scalabilità automatica AWS sottostante del pool di nodi. Per maggiori informazioni su questi tag, consulta la sezione Configurazione del rilevamento automatico della pagina GitHub che descrive la configurazione del gestore della scalabilità automatica del cluster per AWS.
Impostando questi tag di etichetta e incompatibilità, GKE su AWS consente al gestore della scalabilità automatica del cluster di creare modelli di nodi accurati. I modelli di nodo sono rappresentazioni virtuali dei nodi che includono la configurazione, le etichette e le incompatibilità corrette dei nodi, anche se non sono presenti nodi fisici nel pool di nodi. Grazie a questi accurati modelli di nodi, il gestore della scalabilità automatica dei cluster può prendere decisioni corrette di scale up.
Quando configuri le incompatibilità sui pool di nodi, tieni presente che i gruppi di scalabilità automatica di AWS hanno una limitazione: se applichi più incompatibilità con la stessa chiave ma diverse combinazioni effetto valore, solo l'ultima incompatibilità applicata con la chiave duplicata viene considerata dal gestore della scalabilità automatica dei cluster.