Informazioni sul gestore della scalabilità automatica dei cluster
Questo documento descrive il gestore della scalabilità automatica del cluster, che controlla automaticamente le dimensioni dei pool di nodi. Il gestore della scalabilità automatica del cluster viene attivato quando specifichi i valori minimo e massimo per il numero di nodi in un pool di nodi. Specifichi questi valori quando crei un pool di nodi o aggiorni un pool di nodi.
GKE su Azure utilizza lo strumento di scalabilità automatica dei cluster Kubernetes open source.
Scalare 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 un provisioning eccessivo dei pool di nodi. Invece, devi specificare una dimensione minima e una dimensione massima per il pool di nodi, il resto è automatico.
Se le risorse devono essere eliminate o spostate durante la scalabilità automatica del cluster, i tuoi workload potrebbero subire interruzioni temporanee. Ad esempio, se il tuo workload è costituito da un controller con una singola replica, il pod di questa 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 che tollerino potenziali interruzioni o assicurarti che i pod critici non vengano interrotti.
Come funziona il gestore della scalabilità automatica dei cluster
Il gestore della scalabilità automatica dei cluster funziona per pool di nodi. Quando utilizzi il gestore della scalabilità automatica dei cluster per configurare un pool di nodi, specifichi una dimensione minima e massima per il pool di nodi. Puoi modificare le dimensioni minime e massime quando crei un node pool o aggiorni un node pool.
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 del cluster aggiunge nodi se gli oggetti Pod non sono pianificabili e non c'è capacità sufficiente nel pool di nodi per soddisfare le richieste.
Il gestore della scalabilità automatica del cluster rimuove anche i nodi se sono sottoutilizzati e tutti gli oggetti Pod possono essere pianificati su un numero inferiore di nodi. Se non è possibile svuotare normalmente il nodo dopo 10 minuti, il nodo viene terminato forzatamente. Questo periodo non è configurabile.
Se un pod richiede risorse insufficienti (ad esempio, se i valori predefiniti non sono sufficienti), il gestore della scalabilità automatica del cluster non corregge la situazione. Puoi contribuire a garantire che il gestore della scalabilità automatica del cluster funzioni nel modo più preciso possibile creando richieste di risorse adeguate per tutti i tuoi carichi di lavoro. Per ulteriori informazioni, vedi Gestione delle risorse per i container.
Annotazioni dei pod e comportamento di scalabilità automatica del cluster
Il gestore della scalabilità automatica del cluster prende in considerazione determinate annotazioni dei pod quando prende decisioni di scalabilità. Ad esempio, il gestore della scalabilità automatica del cluster supporta annotazioni dei pod come
"cluster-autoscaler.kubernetes.io/safe-to-evict": "false"
. Questa annotazione,
se impostata su "false", impedisce la rimozione del nodo che ospita il pod durante
un evento di scale down. Comprendere e utilizzare queste annotazioni può aiutarti a
ottimizzare il comportamento dello scalatore automatico per soddisfare i requisiti del tuo workload.
Per ulteriori informazioni sulle annotazioni dei pod e sui loro effetti sul gestore della scalabilità automatica del cluster, consulta le seguenti risorse:
- Quali tipi di pod possono impedire a CA di rimuovere un nodo? nelle domande frequenti sul gestore della scalabilità automatica dei cluster.
- Documentazione ufficiale del gestore della scalabilità automatica dei cluster Kubernetes
Criteri operativi
Il gestore della scalabilità automatica dei cluster fa le seguenti ipotesi quando ridimensiona un pool di nodi:
- Tutti gli oggetti pod replicati possono essere riavviati su un altro nodo, causando possibilmente una breve interruzione. Se il tuo workload non tollera interruzioni, configura il workload in modo che venga eseguito su un pool di nodi con la scalabilità automatica disabilitata. Per ulteriori informazioni, consulta Controllare la pianificazione con i taint dei nodi.
- Il gestore della scalabilità automatica del cluster può ignorare qualsiasi operazione di gestione manuale dei nodi che esegui.
- Tutti i nodi di un singolo pool di nodi hanno lo stesso insieme di etichette.
- Il gestore della scalabilità automatica del cluster seleziona un gruppo di nodi con la CPU meno inattiva o la memoria inutilizzata dopo lo scale up. Questo comportamento influisce sui node pool di cui viene aumentato lo scale up se hai nodi di dimensioni diverse (ad esempio nodi con CPU elevata o memoria elevata) nello stesso cluster.
Dimensione minima e massima del node pool
Puoi specificare le dimensioni minime e massime per ogni pool di nodi nel cluster
con i flag min-nodes
e max-nodes
. Per disattivare la scalabilità automatica, imposta
min-nodes
e max-nodes
sullo stesso numero. Il gestore della scalabilità automatica del cluster prende decisioni di scalabilità entro questi limiti di dimensione.
Quando imposti la dimensione massima dei node pool, assicurati che sia sufficiente 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.
Utilizzare un PodDisruptionBudget
per proteggere i carichi di lavoro
Puoi configurare GKE su Azure per proteggere dai problemi dei workload
con un PodDisruptionBudget
. Quando crei un PodDisruptionBudget
, specifichi
il numero minimo di repliche di pod che devono essere disponibili o il numero massimo
di repliche di pod che possono essere non disponibili in un dato momento. Per ulteriori
informazioni, consulta
Specifica di un budget di interruzione per l'applicazione.
Ulteriori informazioni
Per scoprire di più sul gestore della scalabilità automatica dei cluster e su come evitare interruzioni, consulta le seguenti risorse:
- Domande frequenti sullo strumento di scalabilità automatica del cluster Kubernetes
- Come funziona lo scale-down?
- Il gestore della scalabilità automatica dei cluster funziona con
PodDisruptionBudget
durante lo scale down?