Usare il profilo di scalabilità automatica per configurare la scalabilità automatica del cluster nel servizio Azure Kubernetes abilitato da Azure 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 abilitati 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 come funziona la scalabilità automatica, descrive i valori predefiniti del profilo di scalabilità automatica e spiega 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.
- Più profili sono disponibili in AKS Arc.
- Viene assegnato un solo profilo 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 con la funzione di scalabilità automatica abilitata.
Impostazioni del profilo
Il profilo predefinito è costituito dai valori predefiniti seguenti. È possibile aggiornare le impostazioni seguenti.
Impostazione | Descrizione | Valore predefinito |
---|---|---|
min-node-count | Numero minimo di nodi a cui può essere assegnato il pool di nodi a cui è assegnato questo profilo. | 0 |
max-node-count | Numero massimo di nodi a cui è assegnato il pool di nodi a cui è assegnato questo profilo può aumentare. | 1 |
scan-interval | Frequenza con cui il cluster viene rivalutato per aumentare o ridurre il numero di istanze. | 10 secondi |
scale-down-delay-after-add | Quanto tempo dopo la scalabilità orizzontale della valutazione viene ripresa. | 10 minuti |
scale-down-delay-after-delete | Quanto tempo dopo l'eliminazione del nodo che riprende la valutazione verso il basso. | scan-interval |
scale-down-delay-after-failure | Quanto tempo dopo l'aumento del numero di errori che aumentano la valutazione riprende. | 3 minuti |
scale-down-unneeded-time | La durata di un nodo deve essere annullata prima che sia idonea per il ridimensionamento. | 10 minuti |
scale-down-unready-time | La durata di un nodo non letto deve essere annullata prima che sia idonea per il ridimensionamento. | 20 minuti |
scale-down-utilization-threshold | Livello di utilizzo del nodo definito come somma delle risorse richieste suddivise in base alla capacità, al di sotto del quale un nodo può essere considerato per ridurre il numero di istanze. | 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 espansore del pool di nodi da usare per aumentare la scalabilità. Valori possibili: la maggior parte dei pod, la maggior parte dei pod, lo spreco minimo, la priorità. | random |
skip-node-with-local-storage | Se il ridimensionamento automatico del cluster true non eliminerà mai i nodi con pod con archiviazione locale, ad esempio EmptyDir o HostPath. | true |
skip-node-with-system-pods | Se true cluster autoscaler non eliminerà 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 nodi |
new-pod-scale-up-delay | Per scenari come la scalabilità burst/batch in cui non si vuole che l'autorità di certificazione funzioni prima che l'utilità di pianificazione kubernetes possa pianificare tutti i pod, è possibile indicare alla CA di ignorare i pod non programmati prima che siano un'età specifica. | 0 secondi |
max-total-unready-percentage | Percentuale massima di nodi non letti nel cluster. Dopo aver superato questa percentuale, la CA arresta le operazioni. | 45% |
max-node-provision-time | Tempo massimo di attesa del ridimensionamento automatico per il provisioning di un nodo. | 15 minuti |
Note sulla configurazione di scalabilità automatica
È possibile modificare le impostazioni nel profilo di scalabilità automatica del cluster usando il cmdlet Set-AksHciAutoScalerConfig di PowerShell.
Il ridimensionamento automatico del cluster prende decisioni di ridimensionamento in base al numero minimo e massimo impostato su ogni pool di nodi, ma non li applica dopo l'aggiornamento del numero minimo o massimo. Ad esempio, l'impostazione di un numero 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 programmabili 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, un evento con scalabilità orizzontale si verifica dopo l'utilizzo dei nodi per 10 minuti. Se si dispone di carichi di lavoro che vengono 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 del profilo come file YAML. È possibile modificare manualmente il file YAML da un editor di testo e 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, Visual Studio Code o in altri editor di testo.
Caricare la definizione del profilo
È possibile caricare la definizione del profilo usando kvactl
dal file YAML salvato. Eseguire il comando seguente:
kvactl.exe autoscalerprofile create --profileconfig .\def-new.yaml --kubeconfig (Get-AksHciConfig).Kva.kubeconfig
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per