Use o perfil do autoscaler para configurar o dimensionamento automático do cluster no AKS habilitado pelo Arc
Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server
Você pode usar os parâmetros no objeto de perfil autoscaler para definir eventos de escala no AKS habilitado pelo Arc. O perfil do autoscaler de cluster afeta todos os pools de nós que usam o autoscaler de cluster; Não é possível definir um perfil AutoScaler por pool de nós. Este artigo explica como o autoscaler funciona, descreve os valores de perfil padrão do autoscaler e descreve como configurar e usar uma definição de perfil.
Usando perfis
Os perfis do autoscaler de cluster têm os seguintes atributos:
- Os perfis do Autoscaler aplicam-se a todos os pools de nós em um cluster.
- Os perfis são objetos globais no nível de implantação.
- 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 autoscaler habilitada.
Definições do perfil
O perfil padrão consiste nos valores padrão abaixo. Você pode atualizar as seguintes configurações.
Definição | Descrição | Default value |
---|---|---|
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 de aumentar essa escala para baixo a avaliação é retomada. | 10 minutos |
scale-down-delay-after-delete |
Quanto tempo após a exclusão do nó que reduz a avaliação é retomada. | scan-interval |
scale-down-delay-after-failure |
Quanto tempo depois de uma falha de redução de escala essa avaliação de redução é retomada. | 3 minutos |
scale-down-unneeded-time |
Por quanto tempo um nó deve ser desnecessário antes de ser elegível para redução. | 10 minutos |
scale-down-unready-time |
Por quanto tempo um nó despronto deve ser desnecessário antes de ser elegível para redução. | 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 da escala. | 0.5 |
max-graceful-termination-sec |
Número máximo de segundos que o autoscaler do cluster aguarda o encerramento do pod ao tentar reduzir a escala de um nó. | 600 segundos |
balance-similar-node-groups |
Deteta pools de nós semelhantes e equilibra o número de nós entre eles. | false |
expander |
Tipo de expansor de pool de nós a ser usado no scale-up. Valores possíveis: most-pods , random , least-waste , priority . |
random |
skip-nodes-with-local-storage |
Se verdadeiro, o autoscaler de cluster nunca exclui nós com pods com armazenamento local, por exemplo, EmptyDir ou HostPath. | verdadeiro |
skip-nodes-with-system-pods |
Se verdadeiro, o autoscaler de cluster nunca exclui nós com pods de (exceto para DaemonSet ou pods espelho kube-system ). |
verdadeiro |
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 burst/batch scale em que você não quer que a autoridade de certificação aja antes que o agendador do Kubernetes possa agendar todos os pods, você pode dizer à autoridade de certificação para ignorar pods não programados antes que eles tenham uma certa idade. | 0 segundos |
max-total-unready-percentage |
Porcentagem máxima de nós desprontos 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 autoscaler aguarda que um nó seja provisionado. | 15 minutos |
Notas sobre a configuração do autoscaler
Você pode alterar as configurações no perfil do autoscaler do cluster usando o cmdlet Set-AksHciAutoScalerConfig PowerShell.
O autoscaler 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 min ou max. 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 do que o número atual de nós, as novas configurações mínima ou máxima serão respeitadas quando houver pods não escalonáveis suficientes presentes que exijam dois novos nós adicionais e acionem um evento autoscaler. Após o evento de escala, os novos limites de contagem são respeitados.
Você também pode configurar detalhes mais granulares do autoscaler do cluster alterando os valores padrão no perfil do autoscaler em todo o cluster. Por exemplo, um evento de redução de escala acontece depois que os nós são subutilizados por 10 minutos. Se você tiver cargas de trabalho executadas a cada 15 minutos, convém alterar o perfil do autoscaler para reduzir os 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 autoscaler
Você pode salvar e armazenar seu perfil de autoscaler 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.
Guardar a definição do seu perfil
Salve uma cópia do perfil como um arquivo YAML usando kvactl
o . 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 a definição do seu perfil
Você pode editar a definição de perfil no arquivo YAML. Por exemplo, você pode abrir def.yaml no bloco de notas, Visual Studio Code ou outros editores de texto.
Carregue a definição do seu perfil
Você pode carregar a definição de perfil usando kvactl
o arquivo YAML salvo. Execute o seguinte comando:
kvactl.exe autoscalerprofile create --profileconfig .\def-new.yaml --kubeconfig (Get-AksHciConfig).Kva.kubeconfig