Usare il ridimensionamento automatico del cluster in un cluster Arc del servizio Azure Kubernetes
Si applica a: Locale di Azure, versione 23H2
Per mantenere il passo con le esigenze delle applicazioni in Kubernetes, potrebbe essere necessario modificare il numero di nodi che eseguono i carichi di lavoro. Il componente autoscaler del cluster controlla i pod nel cluster che non possono essere pianificati a causa di vincoli di risorse. Quando il ridimensionamento automatico del cluster rileva i problemi, aumenta il numero di nodi nel pool di nodi per soddisfare le esigenze dell'applicazione. Controlla regolarmente anche la mancanza di pod in esecuzione e riduce il numero di nodi in base alle esigenze. Questo articolo illustra come abilitare e gestire il ridimensionamento automatico del cluster in AKS Arc.
Abilitare l'utilità di scalabilità automatica del cluster in un nuovo cluster
Creare un cluster Arc del servizio Azure Kubernetes usando il az aksarc create
comando e abilitare e configurare il ridimensionamento automatico del cluster nel pool di nodi per il cluster usando il --enable-cluster-autoscaler
parametro e specificando --min-count
e --max-count
per un nodo. Il comando di esempio seguente crea un cluster con un singolo nodo, abilita il ridimensionamento automatico del cluster e imposta un minimo di uno e massimo di tre nodi:
az aksarc create \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--custom-location $customLocationId
--vnet-ids $vnetId
--generate-ssh-keys
--aad-admin-group-object-ids $entraIds
--node-count 1 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3
Sono necessari alcuni minuti per creare il cluster e configurare le impostazioni del componente di scalabilità automatica del cluster.
Abilitare l'utilità di scalabilità automatica del cluster per un cluster esistente
Aggiornare un cluster esistente usando il az aksarc update
comando e abilitare e configurare il ridimensionamento automatico del cluster usando il --enable-cluster-autoscaler
parametro e specificando --min-count
e --max-count
per un nodo. Il comando di esempio seguente aggiorna un cluster Arc del servizio Azure Kubernetes esistente per abilitare il ridimensionamento automatico del cluster nel cluster e imposta un minimo di uno e un massimo di tre nodi:
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3
Sono necessari alcuni minuti per aggiornare il cluster e configurare le impostazioni dell'utilità di scalabilità automatica del cluster.
Disabilitare l'utilità di scalabilità automatica del cluster in un cluster
Disabilitare il ridimensionamento automatico del cluster usando il az aksarc update
comando e il --disable-cluster-autoscaler
parametro :
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--disable-cluster-autoscaler
I nodi non vengono rimossi quando il componente di scalabilità automatica del cluster è disabilitato.
Aggiornare le impostazioni del componente di scalabilità automatica del cluster
Man mano che le esigenze dell'applicazione cambiano, potrebbe essere necessario modificare il numero di nodi del ridimensionamento automatico del cluster in modo da ridimensionare in modo efficiente. Modificare il numero di nodi usando il az aksarc update
comando e aggiornare il ridimensionamento automatico del cluster usando il --update-cluster-autoscaler
parametro e specificando l'aggiornamento --min-count
e --max-count
per il nodo.
az aksarc update \
--resource-group myResourceGroup \
--name myAKSCluster \
--update-cluster-autoscaler \
--min-count 1 \
--max-count 5
Usare il profilo del componente di scalabilità automatica del cluster
È 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 di riduzione si verifica quando i nodi sono sottoutilizzati dopo 10 minuti. Se si hanno carichi di lavoro che vengono eseguiti ogni 15 minuti, può essere opportuno modificare il profilo di scalabilità automatica in modo da 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.
Impostazioni del profilo di scalabilità automatica del cluster
La tabella seguente elenca le impostazioni disponibili per il profilo di scalabilità automatica del cluster:
Impostazione | Descrizione | Default value |
---|---|---|
scan-interval |
Frequenza della rivalutazione del cluster per l'aumento o la riduzione. | 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 |
Intervallo di tempo tra un errore di riduzione e la ripresa della valutazione per la riduzione. | Tre 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 divisa per la capacità, in cui un nodo può essere considerato per la riduzione. | 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 pool di nodi usato dall'espansore per aumentare le prestazioni. I valori possibili comprendono most-pods , random , least-waste , e priority . |
|
skip-nodes-with-local-storage |
Se true , il ridimensionamento automatico del cluster non elimina nodi con pod con archiviazione locale, ad esempio EmptyDir o HostPath. |
true |
skip-nodes-with-system-pods |
Se true , il componente di scalabilità automatica del cluster non elimina 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 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 raggiungano una determinata 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 |
Impostare il profilo di scalabilità automatica del cluster in un nuovo cluster
Creare un cluster Arc del servizio Azure Kubernetes usando il az aksarc create
comando e impostare il profilo di scalabilità automatica del cluster usando il cluster-autoscaler-profile
parametro :
az aksarc create \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--node-count 1 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3 \
--cluster-autoscaler-profile scan-interval=30s
Impostare il profilo del componente di scalabilità automatica del cluster in un cluster esistente
Impostare il ridimensionamento automatico del cluster in un cluster esistente usando il comando az aksarc update
e il parametro cluster-autoscaler-profile
. Nell'esempio seguente l'intervallo di analisi viene impostato su 30 s:
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--cluster-autoscaler-profile scan-interval=30s
Reimpostare il profilo di scalabilità automatica del cluster sui valori predefiniti
Reimpostare il profilo di scalabilità automatica del cluster usando il az aksarc update
comando :
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--cluster-autoscaler-profile ""
Passaggi successivi
Questo articolo ha illustrato come ridimensionare automaticamente il numero di nodi Arc del servizio Azure Kubernetes. Per ridimensionare manualmente i pool di nodi, vedere Gestire i pool di nodi nei cluster di Azure Kubernetes Arc.