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