Condividi tramite


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.