Compartilhar via


Usar o perfil do dimensionador automático para configurar o dimensionamento automático de cluster no AKS habilitado pelo Arc

Aplica-se ao: AKS no Azure Local 22H2, AKS no Windows Server

Você pode usar os parâmetros no objeto de perfil do dimensionador automático para definir eventos de escala no AKS habilitado pelo Arc. O perfil do dimensionador automático de cluster afeta todos os pools de nós que usam o dimensionador automático de cluster; Não é possível definir um perfil do dimensionador automático por pool de nós. Este artigo explica como o dimensionador automático funciona, descreve os valores de perfil padrão do dimensionador automático e descreve como configurar e usar uma definição de perfil.

Usando perfis

Os perfis do dimensionador automático de cluster têm os seguintes atributos:

  • Os perfis do dimensionador automático se aplicam a todos os pools de nós em um cluster.
  • Os perfis são objetos de nível de implantação global.
  • Vários perfis estão disponíveis no AKS Arc.
  • Apenas um perfil é atribuído a um determinado cluster. O perfil é usado para todos os pools de nós no cluster.
  • As alterações no perfil são aplicadas a todos os pools de nós que têm a função de dimensionador automático habilitada.

Configurações de perfil

O perfil padrão consiste nos valores padrão abaixo. Você pode atualizar as configurações a seguir.

Configuração Descrição Valor padrão
min-node-count A contagem mínima de nós para a qual o pool de nós ao qual esse perfil é atribuído pode ser reduzido. 0
max-node-count A contagem máxima de nós para a qual o pool de nós ao qual esse perfil é atribuído pode ser dimensionado. 1
scan-interval Com que frequência o cluster é reavaliado para aumentar ou diminuir a escala. 10 segundos
scale-down-delay-after-add Quanto tempo depois da operação de escalar verticalmente a avaliação de redução vertical será retomada. 10 minutos
scale-down-delay-after-delete Quanto tempo após a exclusão do nó a avaliação de redução vertical é retomada. scan-interval
scale-down-delay-after-failure Quanto tempo após uma falha de redução de escala essa avaliação de redução é retomada. 3 minutos
scale-down-unneeded-time Quanto tempo um nó deve permanecer desnecessário antes de estar qualificado para redução vertical. 10 minutos
scale-down-unready-time Por quanto tempo um nó que não esteja preparado deve ser desnecessário para que seja elegível para redução vertical. 20 minutos
scale-down-utilization-threshold Nível de utilização do nó, definido como a soma dos recursos solicitados divididos pela capacidade, abaixo do qual um nó pode ser considerado para redução vertical. 0.5
max-graceful-termination-sec Número máximo de segundos que o dimensionador automático do cluster aguarda para encerramento do pod ao tentar reduzir verticalmente um nó. 600 segundos
balance-similar-node-groups Detecta pools de nós semelhantes e equilibra o número de nós entre eles. false
expander Tipo de expansor do pool de nós a ser usado para escalar verticalmente. Possíveis valores : most-pods, random, least-waste, priority. random
skip-nodes-with-local-storage Se true, o dimensionador automático de cluster nunca excluirá nós com pods com armazenamento local, por exemplo, EmptyDir ou HostPath. true
skip-nodes-with-system-pods Se true, o dimensionador automático de cluster nunca excluirá nós com pods de kube-system (exceto DaemonSet ou pods espelho). true
max-empty-bulk-delete Número máximo de nós vazios que podem ser excluídos ao mesmo tempo. 10
new-pod-scale-up-delay Para cenários como escala de intermitência/lote, em que você não deseja que a CA atue antes que o agendador do Kubernetes possa agendar todos os pods, você pode dizer à CA para ignorar pods não agendados antes que eles tenham uma determinada idade. 0 segundos
max-total-unready-percentage Percentual máximo de nós não lidos no cluster. Depois que esse percentual é excedido, a autoridade de certificação interrompe as operações. 45%
max-node-provision-time Tempo máximo que o dimensionador automático aguarda para que um nó seja provisionado. 15 minutos

Observações sobre a configuração do dimensionador automático

Você pode alterar as configurações no perfil do dimensionador automático de cluster usando o cmdlet Set-AksHciAutoScalerConfig do PowerShell.

O dimensionador automático de cluster toma decisões de dimensionamento com base nas contagens mínima e máxima definidas em cada pool de nós, mas não as impõe depois de atualizar as contagens mínima ou máxima. Por exemplo, definir uma contagem mínima de 5 quando a contagem de nós atual for 3 não dimensionará imediatamente o pool para 5.

Se a contagem mínima no pool de nós tiver um valor maior que o número atual de nós, as novas configurações mínimas ou máximas serão respeitadas quando houver pods não agendáveis suficientes presentes que exijam dois novos nós adicionais e disparem um evento de dimensionador automático. Após o evento de escala, os novos limites de contagem são respeitados.

Você também pode configurar detalhes mais granulares do dimensionador automático de cluster alterando os valores padrão no perfil de dimensionamento automático em todo o cluster. Por exemplo, um evento de redução de escala ocorre depois que os nós são subutilizados por 10 minutos. Caso você tenha cargas de trabalho que são executadas a cada 15 minutos, convém alterar o perfil de dimensionamento automático para realizar redução vertical em nós subutilizados após 15 ou 20 minutos. Quando você habilita o dimensionador automático de cluster, um perfil padrão é usado, a menos que você especifique configurações diferentes.

Salvar e carregar o perfil do dimensionador automático

Você pode salvar e armazenar seu perfil do dimensionador automático em uma definição de perfil como um arquivo YAML. Você pode editar manualmente o arquivo YAML de um editor de texto e carregar definições salvas.

Salve sua definição de perfil

Você salva uma cópia do perfil como um arquivo YAML usando kvactl. Depois de definir seu perfil, execute os seguintes comandos:

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

Editar sua definição de perfil

Você pode editar a definição de perfil no arquivo YAML. Por exemplo, você pode abrir def.yaml no bloco de notas, no Visual Studio Code ou em outros editores de texto.

Carregar sua definição de perfil

Você pode carregar a definição de perfil usando kvactl o arquivo YAML salvo. Execute o comando a seguir:

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

Próximas etapas