Para clusters grandes ou cargas de trabalho sensíveis à latência nas quais o dimensionamento automático de nós é insuficiente, ative o dimensionamento instantâneo de nós para provisionar nós mais rapidamente e reduzir custos.
Antes de começar
Consulte node scaling para entender os seguintes conceitos:
Como funciona o dimensionamento instantâneo de nós
Benefícios e casos de uso compatíveis
Notas de uso
Para evitar cobranças inesperadas, use instâncias de pagamento conforme o uso. Durante a redução, as instâncias de assinatura são removidas do cluster, mas não são liberadas da sua conta.
Pré-requisitos e limitações
Um ACK managed cluster ou ACK dedicated cluster executando o Kubernetes 1.24 ou posterior. Consulte Manually upgrade a cluster.
O Auto Scaling está ativado.
-
O vSwitch do node pool de dimensionamento instantâneo de nós deve ter endereços IP suficientes. Chame a API DescribeVSwitchAttributes para verificar os IPs disponíveis.
Se os endereços IP forem insuficientes, consulte Expand cluster IP capacity by adding a secondary CIDR block.
O dimensionamento instantâneo de nós funciona apenas com node pools com o Scaling Mode Standard. O modo Swift não é compatível.
Com o ACK GOATScaler v0.5.3 ou anterior, remova manualmente os nós offline. Consulte FAQ.
Em um ACK dedicated cluster, os nós devem ter recursos suficientes para implantar ou atualizar o ACK GOATScaler; caso contrário, o dimensionamento pode falhar.
Atualmente, não há suporte para a evicção de Pods do DaemonSet em nós vazios.
Etapa 1: Ativar o dimensionamento instantâneo de nós
Para usar o dimensionamento instantâneo de nós, ative o dimensionamento automático do cluster na página Node Pools.
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
Na página Node Pools, clique em Enable ao lado de Node Scaling.
-
Se solicitado, ative o Auto Scaling e conceda as permissões necessárias.
ACK managed cluster: Autorize a função AliyunCSManagedAutoScalerRole.
-
ACK dedicated cluster: Autorize a função KubernetesWorkerRole e anexe a política AliyunCSManagedAutoScalerRolePolicy.
Na caixa de diálogo Node Scaling Configuration, após a aprovação da pré-verificação, clique no link da função RAM (como
KubernetesWorkerRole-xxxx) para concluir a autorização no console do RAM.
-
Na página Node Scaling Configuration, defina o Node Scaling Plan como Instant Scaling, configure os parâmetros de dimensionamento e clique em OK.
O componente de dimensionamento aciona automaticamente a expansão dos nós com base nas condições de agendamento.
Alterne o Node Scaling Plan para Auto Scaling a qualquer momento. Siga as instruções na tela. Este recurso está em versão beta. Para participar, envie um ticket .
Parâmetro
Descrição
Scale-in Threshold
A proporção de solicitações de recursos em relação à capacidade total de recursos de um nó em um node pool com o dimensionamento automático de nós ativado.
Um nó é elegível para redução apenas se a utilização de recursos de CPU e memória estiver abaixo do Scale-in Threshold.
GPU Scale-in Threshold
O limiar de redução para instâncias GPU.
Uma instância GPU é elegível para redução apenas quando a utilização de CPU, memória e GPU estiver abaixo do GPU Scale-in Threshold configurado.
Scale-in Trigger Delay
O atraso entre o momento em que um nó se torna elegível para redução e a execução da operação. Unidade: minutos. Valor padrão: 10 minutos.
ImportanteO componente de dimensionamento só pode executar a redução de um nó após a condição do Scale-in Threshold ser atendida e a duração do Scale-in Trigger Delay ter decorrido.
Etapa 2: Configurar um node pool para dimensionamento automático
O dimensionamento instantâneo de nós aplica-se apenas a node pools com o dimensionamento automático ativado.
crie um node pool e defina o Enable DaemonSet Pod Eviction como Auto.
edite um node pool existente para alterar o Scaling Mode para Auto.
Recomendado: Configure vários tipos de instância e zonas de disponibilidade para garantir capacidade suficiente durante a expansão.
(Opcional) Etapa 3: Verifique a configuração
Verifique se o dimensionamento automático está ativo e se o ACK GOATScaler está instalado.
Verifique o status do node pool
Na página Scaling Mode, certifique-se de que o seu node pool exiba a tag Auto Scaling.
Verifique a instalação do add-on
Na página Node Pools, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Components and Add-ons .
Na página Add-ons, certifique-se de que o status do add-on ACK GOATScaler seja Installed.
Principais eventos do dimensionamento instantâneo de nós
O recurso de dimensionamento instantâneo de nós gera os seguintes eventos:
|
Nome do evento |
Objeto |
Descrição |
|
ProvisionNode |
|
Expansão de nó acionada com sucesso. |
|
ProvisionNodeFailed |
|
Falha ao acionar a expansão de nó. |
|
ResetPod |
|
Um pod não agendável que acionou uma expansão é recolocado na fila para nova tentativa. |
|
InstanceInventoryStatusChanged |
|
Emitido quando o inventário disponível muda para os tipos de instância configurados. Consulte visualize o status de integridade do dimensionamento instantâneo de nós. |
Identificadores do dimensionamento instantâneo de nós
Esses identificadores são gerenciados pelo sistema. Modificá-los pode causar um comportamento de dimensionamento inesperado.
Rótulos de nós
goatscaler.io/managed:trueouk8s.aliyun.com: true: Identifica os nós gerenciados pelo dimensionamento instantâneo de nós. Usado para avaliar as condições de redução.goatscaler.io/provision-task-id:{task-id}: O ID da tarefa de expansão. Usado para rastreamento.
Taints de nós
goatscaler.io/node-terminating: Nós com este taint são marcados para redução.
Anotações de Pods
goatscaler.io/provision-task-id: O ID da tarefa de expansão para este pod. O sistema aguarda o nó iniciar antes de acionar mais expansões.goatscaler.io/reschedule-deadline: Tempo limite de agendamento do pod. Se ainda não for agendável após este prazo, o pod será recolocado na fila e poderá acionar outra expansão.
Perguntas frequentes
Categoria | Subcategoria | Link |
Comportamento do dimensionamento instantâneo de nós | ||
| ||
Comportamento de dimensionamento personalizado | ||
Operações relacionadas
Visualize o status de integridade
O recurso de dimensionamento instantâneo de nós seleciona tipos de instância e zonas de disponibilidade com base no inventário do ECS. Verifique o ConfigMap do node pool para monitorar a integridade do inventário e obter recomendações de tipos de instância.
Consulte visualize o status de integridade do dimensionamento instantâneo de nós.
Ativar a coleta de logs
Para clusters ACK managed cluster, colete os logs do ACK GOATScaler na página Control Plane Component Logs.
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
-
Na aba Control Plane Component Logs, clique em Update Component e selecione o ACK GOATScaler.
Na caixa de diálogo Update Component, selecione
ack-goatscalere clique em OK.Após a atualização, selecione o ACK GOATScaler na lista suspensa para visualizar os logs.
Atualize o ACK GOATScaler
Mantenha o ACK GOATScaler atualizado para ter acesso aos recursos mais recentes. Consulte Components.
Ignorar verificações de inventário para pools privados
Se você usar um pool privado para capacidade garantida, ative SkipInventoryCheck para permitir que o ACK GOATScaler ignore as verificações de inventário e use os recursos do pool privado diretamente.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Clusters.
-
Na página Components and Add-ons , localize o ACK GOATScaler e clique em Configuration.
Requer o ACK GOATScaler v0.3.0-582e405-aliyun ou posterior.
Defina
SkipInventoryCheckcomo true.