Concetti relativi alla scalabilità del cluster

Completato

Esaurimento dei nodi

spec.containers.resources Nella chiave di un file YAML del pod si definisce il numero di risorse richieste dal pod. Dopo aver creato un nuovo pod all'interno di un nodo, Kubernetes alloca automaticamente il numero specificato di risorse al pod in modo che venga eseguito con la quantità di potenza necessaria.

Un singolo nodo è una singola macchina virtuale con una quantità limitata di risorse, ad esempio CPU e RAM, disponibile per i pod. Non è possibile attivare un numero infinito di pod in un nodo. Quando un nodo non soddisfa i requisiti necessari per la risorsa del pod, il pod compete con le risorse specificate per le risorse del nodo, che porta alla fame del nodo. Il pod rimane in stato In sospeso e non è pianificato in alcun nodo fino a quando non sono disponibili risorse sufficienti.

Scalabilità dei cluster

Per evitare la fame di nodi, l'operatore deve aumentare il numero di istanze del cluster e aggiungere altre macchine virtuali al pool di nodi. È possibile eseguire il ridimensionamento manuale del cluster usando il comando dell'interfaccia della riga di comando di Azure az aks scale . È anche possibile usare il portale di Azure per ridimensionare manualmente il cluster. Passare al portale e selezionare il cluster del servizio Azure Kubernetes. In Impostazioni selezionare Pool di nodi. Selezionare il pool di nodi da ridimensionare e quindi selezionare Ridimensiona pool di nodi.

La scalabilità manuale può essere eccessiva, soprattutto per i cluster con domanda incoerente e fluttuante. Quando il numero di pod fluttua costantemente, è necessario monitorarlo costantemente per i pod non pianificati e apportare eventuali modifiche necessarie in tempo reale.

Ridimensionamento automatico del cluster

Nel servizio Azure Kubernetes il ridimensionamento automatico del cluster è uno strumento che automatizza il processo di ridimensionamento del cluster. Quando lo si abilita nel cluster del servizio Azure Kubernetes, controlla i pod non pianificati con vincoli di risorse e aumenta automaticamente il numero di nodi per soddisfare i requisiti.

Diagram that shows how the cluster autoscaler works.

Il ridimensionamento automatico del cluster può anche ridurre il numero di nodi in un cluster se è presente una capacità del cluster inutilizzata per un periodo di tempo specificato. Quando questa condizione è soddisfatta, l'utilità di scalabilità automatica blocca e svuota il nodo in modo che tutti i pod pianificati in quel nodo vengano spostati in modo sicuro in altri nodi. Garantisce inoltre che non vengano pianificati altri pod durante il processo. Quindi rimuove il nodo dal pool.

Esistono alcune situazioni in cui il ridimensionamento automatico del cluster non può rimuovere un nodo a causa di pod che non possono essere spostati all'esterno di tale nodo. Queste situazioni includono:

  • Un pod viene creato direttamente con un file YAML e non è associato ad alcun controller, ad esempio Distribuzioni o Set di repliche.
  • Il budget di interruzione dei pod (PDB) è troppo restrittivo e non consente la riduzione del numero di pod sotto una determinata soglia.
  • Il pod dispone di un selettore di nodo per quel particolare nodo o un'affinità di nodo che impedisce di passare altrove.

Quando la scalabilità automatica è abilitata, il ridimensionamento manuale del cluster è disabilitato.

Verificare le conoscenze

1.

In che modo il ridimensionamento automatico del cluster è diverso da HPA?

2.

Perché il ridimensionamento automatico del cluster è necessario in un ambiente di produzione?

3.

In quale di queste situazioni il cluster non riesce a rimuovere un nodo?