Informazioni sul gestore della scalabilità automatica dei cluster

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 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 il gestore della 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 richieste dei tuoi carichi di lavoro. Non è necessario aggiungere o rimuovere manualmente i nodi o eseguire un provisioning eccessivo dei pool di nodi. Invece, specifichi una dimensione minima e massima per il pool di nodi e il resto è automatico.

Se è necessario eliminare o spostare le risorse durante la scalabilità automatica del cluster, i carichi di lavoro potrebbero subire interruzioni temporanee. Ad esempio, se il carico di lavoro è costituito da un controller con una singola replica, il pod della replica potrebbe essere ripianificato su un nodo diverso se il nodo corrente 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 la dimensione minima e massima quando crei un pool di nodi o aggiorni 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) in quel pool di nodi. Il gestore della scalabilità automatica dei cluster aggiunge nodi se gli oggetti pod non sono pianificabili e non è disponibile capacità sufficiente nel pool di nodi per soddisfare le richieste.

Il gestore della scalabilità automatica dei cluster rimuove anche i nodi se sono sottoutilizzati e tutti gli oggetti pod potrebbero essere pianificati su un numero inferiore di nodi. Se il nodo non può essere svuotato normalmente dopo 10 minuti, viene terminato forzatamente. Questo periodo non è configurabile.

Se un pod richiede troppe poche risorse (ad esempio, se i valori predefiniti non sono sufficienti), il gestore della scalabilità automatica dei cluster non corregge la situazione. Puoi contribuire a garantire che il gestore della scalabilità automatica dei cluster funzioni nel modo più accurato possibile creando richieste di risorse adeguate per tutti i carichi di lavoro. Per ulteriori informazioni, consulta Gestire le risorse per i container.

Annotazioni dei pod e comportamento del gestore della scalabilità automatica dei cluster

Il gestore della scalabilità automatica dei cluster considera determinate annotazioni dei pod quando prende decisioni di scalabilità. Ad esempio, il gestore della scalabilità automatica dei cluster supporta annotazioni dei pod come "cluster-autoscaler.kubernetes.io/safe-to-evict": "false". Se impostata su "false", questa annotazione 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 del gestore della scalabilità automatica in base ai requisiti del carico di lavoro.

Per ulteriori informazioni sulle annotazioni dei pod e sui relativi effetti sul gestore della scalabilità automatica dei cluster, consulta le seguenti risorse:

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 carico di lavoro non tollera interruzioni, configuralo in modo che venga eseguito su un pool di nodi con la scalabilità automatica disattivata. Per ulteriori informazioni, consulta Controllare la pianificazione con i taint dei nodi.
  • Il gestore della scalabilità automatica dei cluster può sostituire qualsiasi operazione di gestione manuale dei nodi eseguita.
  • Tutti i nodi in un singolo pool di nodi hanno lo stesso insieme di etichette.
  • Dopo lo scale up, il gestore della scalabilità automatica dei cluster seleziona un gruppo di nodi con la CPU inattiva o memoria inutilizzata minima. Questo comportamento influisce sui pool di nodi di cui viene eseguito lo scale up se nello stesso cluster sono presenti nodi di dimensioni diverse (ad esempio, nodi con CPU elevata o memoria elevata).

Dimensione minima e massima del pool di nodi

Puoi specificare la dimensione minima e massima 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 dei cluster prende decisioni di scalabilità entro questi limiti di dimensioni.

Quando imposti la dimensione massima dei pool di nodi, assicurati che sia sufficientemente grande da 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 da interruzioni dei carichi di lavoro con un PodDisruptionBudget. Quando crei un PodDisruptionBudget, specifichi il numero minimo di repliche dei pod che devono essere disponibili o il numero massimo di repliche dei pod che possono essere non disponibili in un dato momento. Per ulteriori informazioni, consulta Specificare un budget di interruzione per l'applicazione.

Ulteriori informazioni

Per saperne di più sul gestore della scalabilità automatica dei cluster e su come prevenire le interruzioni, consulta le seguenti risorse:

Passaggi successivi