Condividi tramite


Usare il profilo di scalabilità automatica per configurare la scalabilità automatica del cluster nel servizio Azure Kubernetes abilitato da Arc

Si applica a: Servizio Azure Kubernetes in Azure Stack HCI 22H2, servizio Azure Kubernetes in Windows Server

È possibile usare i parametri nell'oggetto profilo di scalabilità automatica per definire gli eventi di scalabilità nel servizio Azure Kubernetes abilitato da Arc. Il profilo di scalabilità automatica del cluster influisce su tutti i pool di nodi che usano il ridimensionamento automatico del cluster; non è possibile impostare un profilo di scalabilità automatica per ogni pool di nodi. Questo articolo illustra il funzionamento dell'utilità di scalabilità automatica, descrive i valori predefiniti del profilo di scalabilità automatica e descrive come configurare e usare una definizione del profilo.

Uso dei profili

I profili di scalabilità automatica del cluster hanno gli attributi seguenti:

  • I profili di scalabilità automatica si applicano a tutti i pool di nodi in un cluster.
  • I profili sono oggetti a livello di distribuzione globale.
  • In Azure Kubernetes Arc sono disponibili più profili.
  • Un solo profilo viene assegnato a un determinato cluster. Il profilo viene usato per tutti i pool di nodi nel cluster.
  • Le modifiche apportate al profilo vengono applicate a tutti i pool di nodi in cui è abilitata la funzione di scalabilità automatica.

Impostazioni del profilo

Il profilo predefinito è costituito dai valori predefiniti seguenti. È possibile aggiornare le impostazioni seguenti.

Impostazione Descrizione Default value
min-node-count Numero minimo di nodi a cui è assegnato il pool di nodi a cui è assegnato questo profilo può ridurre le prestazioni. 0
max-node-count Numero massimo di nodi a cui è assegnato il pool di nodi a cui è assegnato questo profilo può aumentare le prestazioni. 1
scan-interval Frequenza con cui il cluster viene rivalutato per aumentare o ridurre le prestazioni. 10 secondi
scale-down-delay-after-add Intervallo di tempo tra l'aumento e la ripresa della valutazione per la riduzione. 10 minuti
scale-down-delay-after-delete Intervallo di tempo tra l'eliminazione del nodo e la ripresa della valutazione per la riduzione. scan-interval
scale-down-delay-after-failure Quanto tempo dopo un errore di riduzione della scala che riduce la valutazione riprende. 3 minuti
scale-down-unneeded-time Per quanto tempo un nodo non deve essere necessario prima di essere idoneo per la riduzione. 10 minuti
scale-down-unready-time Per quanto tempo un nodo non pronto non deve essere necessario prima di essere idoneo per la riduzione. 20 minuti
scale-down-utilization-threshold Livello di utilizzo del nodo, definito come somma delle risorse richieste divise per capacità, al di sotto della quale un nodo può essere considerato per ridurre le prestazioni. 0.5
max-graceful-termination-sec Numero massimo di secondi di attesa del componente di scalabilità automatica del cluster prima della terminazione del pod durante il tentativo di riduzione di un nodo. 600 secondi
balance-similar-node-groups Rileva pool di nodi simili e bilancia il numero di nodi tra di essi. false
expander Tipo di espansione del pool di nodi da usare per aumentare le prestazioni. Valori possibili: most-pods, random, least-waste, priority. random
skip-nodes-with-local-storage Se true, il ridimensionamento automatico del cluster non elimina mai i nodi con pod con archiviazione locale, ad esempio EmptyDir o HostPath. true
skip-nodes-with-system-pods Se true, il ridimensionamento automatico del cluster non elimina mai i nodi con pod da kube-system (ad eccezione di DaemonSet o pod mirror). true
max-empty-bulk-delete Numero massimo di nodi vuoti che possono essere eliminati contemporaneamente. 10
new-pod-scale-up-delay Per scenari come la scalabilità burst/batch in cui non si vuole che l'autorità di certificazione agisca prima che l'utilità di pianificazione kubernetes possa pianificare tutti i pod, è possibile indicare alla CA di ignorare i pod non pianificati prima che abbiano una certa età. 0 secondi
max-total-unready-percentage Percentuale massima di nodi non letti nel cluster. Dopo il superamento di questa percentuale, l'autorità di certificazione interrompe le operazioni. 45%
max-node-provision-time Tempo massimo di attesa per il provisioning di un nodo da parte dell'utilità di scalabilità automatica. 15 minuti

Note sulla configurazione del ridimensionamento automatico

È possibile modificare le impostazioni nel profilo di scalabilità automatica del cluster usando il cmdlet Di PowerShell Set-AksHciAutoScalerConfig .

Il ridimensionamento automatico del cluster prende decisioni di ridimensionamento in base ai conteggi minimo e massimo impostati in ogni pool di nodi, ma non li applica dopo l'aggiornamento dei conteggi min o max. Ad esempio, l'impostazione di un conteggio minimo di 5 quando il numero di nodi corrente è 3 non ridimensiona immediatamente il pool fino a 5.

Se il conteggio minimo nel pool di nodi ha un valore superiore al numero corrente di nodi, le nuove impostazioni minime o massime vengono rispettate quando sono presenti pod non pianificabili sufficienti che richiedono due nuovi nodi aggiuntivi e attivano un evento di scalabilità automatica. Dopo l'evento di scalabilità, vengono rispettati i nuovi limiti di conteggio.

È anche possibile configurare dettagli più granulari del componente di scalabilità automatica del cluster modificando i valori predefiniti nel profilo di scalabilità automatica a livello di cluster. Ad esempio, si verifica un evento di riduzione delle prestazioni dopo che i nodi sono sottoutilizzati per 10 minuti. Se sono presenti carichi di lavoro eseguiti ogni 15 minuti, è possibile modificare il profilo di scalabilità automatica per ridurre i nodi sottoutilizzati dopo 15 o 20 minuti. Quando si abilita il componente di scalabilità automatica del cluster, viene usato un profilo predefinito, a meno che non si specifichino impostazioni diverse.

Salvare e caricare il profilo di scalabilità automatica

È possibile salvare e archiviare il profilo di scalabilità automatica in una definizione di profilo come file YAML. È possibile modificare manualmente il file YAML da un editor di testo ed è possibile caricare le definizioni salvate.

Salvare la definizione del profilo

Salvare una copia del profilo come file YAML usando kvactl. Dopo aver definito il profilo, eseguire i comandi seguenti:

kvactl.exe autoscalerprofile get --name default --kubeconfig (Get-AksHciConfig).Kva.kubeconfig --outputformat=yaml > def.yaml

Modificare la definizione del profilo

È possibile modificare la definizione del profilo nel file YAML. Ad esempio, è possibile aprire def.yaml nel Blocco note, In Visual Studio Code o in altri editor di testo.

Caricare la definizione del profilo

È possibile caricare la definizione del profilo usando kvactl il file YAML salvato. Esegui questo comando:

kvactl.exe autoscalerprofile create --profileconfig .\def-new.yaml --kubeconfig (Get-AksHciConfig).Kva.kubeconfig

Passaggi successivi