Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Enable node autoscaling

Última atualização: Oct 30, 2026

Se o seu cluster não tiver recursos suficientes para agendar pods, você poderá usar o dimensionamento automático de nós para adicionar ou remover nós automaticamente. O dimensionamento automático de nós é ideal para cenários de dimensionamento menos exigentes, como clusters com menos de 20 grupos de nós com dimensionamento automático ou menos de 100 nós em cada um. Também é adequado para workloads com tráfego estável, demandas de recursos previsíveis e nas quais uma única ação de dimensionamento é suficiente.

Antes de começar

Para usar o recurso de dimensionamento automático de nós de forma eficaz, recomendamos que você leia primeiro Node scaling e entenda o seguinte:

对 Como o dimensionamento automático de nós funciona e seus recursos

对 Casos de uso adequados para o dimensionamento automático de nós

对 Considerações importantes antes de usar o dimensionamento automático de nós

对 Durante uma redução de escala (scale-in), as instâncias por assinatura são removidas do cluster, mas não são encerradas. Para evitar custos extras, use instâncias de pagamento conforme o uso ao ativar este recurso.

Precauções

  • Antes de começar, certifique-se de ter ativado o service do Auto Scaling.

  • Para obter informações sobre cotas e limites, consulte Precautions para o dimensionamento de nós.

  • O dimensionamento automático de nós tem known limitations com determinadas políticas de agendamento, o que pode levar a um comportamento de dimensionamento inesperado. Se seus workloads ou componentes usarem uma política de agendamento não suportada, recomendamos uma das seguintes soluções:

    • Solução 1: Mude para node instant scaling.

    • Solução 2: Implante os workloads ou componentes afetados em um grupo de nós onde o dimensionamento de nós não esteja ativado.

      Por exemplo, para implantar o componente ack-node-local-dns-admission-controller, implante-o em um grupo de nós onde o dimensionamento de nós não esteja ativado e adicione o seguinte requisito de afinidade de nó à configuração do componente.

      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
          - matchExpressions:
            - key: "k8s.aliyun.com"
              operator: "NotIn"
              values: ["true"]
  • O componente cluster-autoscaler requer recursos de nó durante atualizações ou implantações. Recursos insuficientes podem causar falhas nessas operações e interromper o dimensionamento. Certifique-se de que seus nós tenham recursos adequados para evitar essas falhas.

Este recurso envolve as seguintes etapas:

  1. Step 1: Enable node autoscaling for the cluster: Você deve primeiro ativar o dimensionamento automático de nós no nível do cluster para que as políticas de Auto Scaling do grupo de nós tenham efeito.

  2. Step 2: Configure autoscaled node pools: O recurso de dimensionamento automático de nós afeta apenas os grupos de nós onde está ativado. Portanto, você deve definir o modo de dimensionamento de grupos de nós específicos como Auto.

Etapa 1: Ativar o dimensionamento automático de nós

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique em seu cluster. No painel de navegação à esquerda, clique em Nodes > Node Pools.

  3. Na página Node Pools, ao lado de Node Scaling, clique em Enable.

  4. Se esta for a primeira vez que você usa o dimensionamento automático de nós, siga as instruções na tela para ativar o service do Auto Scaling e conceder as permissões necessárias. Se você já fez isso, pule esta etapa.

    • Cluster gerenciado pelo ACK: Autorize a função AliyunCSManagedAutoScalerRole.

    • Cluster dedicado do ACK: Autorize a função KubernetesWorkerRole e anexe a AliyunCSManagedAutoScalerRolePolicy.

      Na caixa de diálogo Node Scaling Configuration, após a aprovação da pré-verificação, clique em link da função RAM (como KubernetesWorkerRole-xxxx) para concluir a autorização no console do RAM.

  5. Na página Node Scaling Configuration, defina Node Scaling Plan como Auto Scaling, configure os parâmetros e clique em OK.

    Você pode alterar a solução de dimensionamento após selecioná-la. Para alterar, mude a seleção para node instant scaling , leia atentamente os avisos na tela e siga as instruções para concluir a operação.

    Parâmetro

    Descrição

    Node Pool Scale-out Policy

    • Random Policy: Se vários grupos de nós forem elegíveis para expansão (scale-out), um será escolhido aleatoriamente.

    • Default Policy: Se vários grupos de nós forem elegíveis para expansão, escolha aquele que resulta no menor desperdício de recursos.

    • Priority-based Policy: Se vários grupos de nós forem elegíveis para expansão, escolha aquele com a maior prioridade.

      A prioridade do grupo de nós é definida pelo parâmetro Node Pool Scale-out Priority.

    Node Pool Scale-out Priority

    Define a prioridade de expansão para os grupos de nós. Este parâmetro só tem efeito quando Node Pool Scale-out Policy está definido como Priority-based Policy.

    Intervalo de valores: um número inteiro de 1 a 100. Um valor maior indica uma prioridade mais alta.

    Você deve clique em Add ao lado do parâmetro, selecione um grupo de nós com dimensionamento automático e defina uma prioridade para ele.

    Se não houver grupos de nós com dimensionamento automático disponíveis, você pode ignorar este parâmetro por enquanto e defina a prioridade após concluir Step 2: Configure autoscaled node pools.

    Scaling Sensitivity

    O intervalo no qual o sistema verifica se deve realizar o dimensionamento. O valor padrão é 60s.

    Durante o Auto Scaling, o componente de dimensionamento aciona automaticamente eventos de expansão com base no status de agendamento.

    Importante
    • Nós ecs: O componente de dimensionamento só pode reduzir a escala (scale-in) de um nó quando as condições de Scale-in Threshold, Scale-in Trigger Delay e Cooldown Period forem todas atendidas.

    • Nós GPU: O componente de dimensionamento só pode reduzir a escala de um nó GPU quando as condições de GPU Scale-in Threshold, Scale-in Trigger Delay e Cooldown Period forem todas atendidas.

    Allow Scale-in

    Especifica se deve permitir a redução de escala do nó. Se isso estiver desativado, as configurações relacionadas à redução de escala não terão efeito. Use esta configuração com cuidado.

    Scale-in Threshold

    A proporção de solicitações de recursos em relação à capacidade total de recursos de um nó em um grupo de nós com dimensionamento automático de nós ativado.

    Um nó só é elegível para redução de escala 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 de escala para instâncias GPU.

    Uma instância GPU só é elegível para redução de escala 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 de escala e o momento em que a operação é realizada. Unidade: minutos. Valor padrão: 10 minutos.

    Importante

    O componente de dimensionamento só pode realizar a redução de escala de um nó após a condição de Scale-in Threshold ser atendida e a duração do Scale-in Trigger Delay ter passado.

    Cooldown Period

    O período após o evento de expansão mais recente durante o qual o componente de dimensionamento não realizará uma redução de escala.

    Durante o período de resfriamento (cooldown), as ações de redução de escala são pausadas, mas o sistema continua avaliando a elegibilidade dos nós. Assim que o resfriamento termina, qualquer nó que tenha atendido às condições de redução de escala (limiar e tempo de adiamento) é reduzido. Por exemplo, com um resfriamento de 10 minutos e um adiamento de 5 minutos, nenhum nó é removido por 10 minutos após uma expansão. Se um nó se tornar elegível no minuto 2, ele será removido no minuto 10, pois esteve elegível por 8 minutos, o que excede o adiamento de 5 minutos.

    Parâmetros avançados

    Parâmetro

    Descrição

    Pod Termination Timeout

    Tempo máximo de espera para o encerramento do pod durante a redução de escala. Unidade: segundos.

    Se um pod não for evacuado antes do tempo limite, o nó não será liberado.

    Minimum Pod Replicas

    Limiar de proteção contra redução de escala. Nós com pods ReplicationController ou ReplicaSet não sofrem redução de escala se a contagem de réplicas cair abaixo deste valor.

    Aplica-se apenas a pods ReplicationController e ReplicaSet, não a StatefulSet ou DaemonSet.

    Enable DaemonSet Pod Eviction

    Quando ativado, os pods do DaemonSet são evacuados quando seu nó sofre redução de escala. Atualmente, não há suporte para a evacuação de pods do DaemonSet de nós vazios.

    Ignorar nós com pods no namespace kube-system

    Quando ativado, os nós com pods do namespace kube-system são excluídos da redução de escala.

    Nota

    Isso não se aplica a pods do DaemonSet ou pods espelho (mirror pods).

Etapa 2: Configure grupos de nós com dimensionamento automático

Você pode configure um grupo de nós existente alterando seu Scaling Mode para Auto ou crie um novo grupo de nós com o Auto Scaling ativado.

Para obter instruções detalhadas, consulte Crie e gerencie um grupo de nós. Os principais parâmetros estão descritos abaixo:

Parâmetro

Descrição

Scaling Mode

  • Manual: O ACK ajusta o número de nós no grupo de nós de acordo com o Expected Number of Nodes configurado para sempre manter o número de nós no Expected Number of Nodes. Para mais informações, consulte Manually scale a node pool.

  • Auto: Quando o planejamento de capacidade do cluster não consegue atender às necessidades de agendamento de pods da aplicação, o ACK dimensiona automaticamente os recursos do nó com base no número mínimo e máximo de instâncias configurado. Para clusters da versão 1.24 e posteriores, o dimensionamento instantâneo de nós (node instant scaling) é ativado por padrão. Para clusters anteriores à versão 1.24, o dimensionamento automático de nós é ativado por padrão. Para mais informações, consulte Node scaling.

Importante
  • Se você ativar a redução de escala, o sistema removerá automaticamente os nós com base no uso de recursos, o que pode causar interrupções nos negócios. Recomendamos configure a política de dimensionamento adequadamente e defina o encerramento gracioso (graceful shutdown) para os contêineres da sua aplicação.

  • Durante a redução de escala automática, os dados locais no nó serão destruídos junto com o nó. Não use métodos como HostPath para gravar dados de negócios no diretório do host.

Instances

As Min. Instances e Max. Instances escaláveis no grupo de nós não incluem suas instâncias existentes.

Nota
  • Se Min. Instances for maior que 0, o número correspondente de instâncias ecs será criado automaticamente após o grupo de dimensionamento entrar em vigor.

  • Recomendamos defina Max. Instances com um valor que não seja menor que o número atual de nós no grupo de nós. Caso contrário, os nós no grupo de nós sofrerão redução de escala imediatamente após a ativação do recurso de dimensionamento automático.

Parâmetros relacionados à instância

Quando um grupo de nós expande, ele aloca instâncias a partir do ecs instance family configurado. Para melhorar a taxa de sucesso das expansões, selecione vários tipos de instância em várias zonas para evitar indisponibilidade ou falta de estoque. O tipo de instância específico para expansão é determinado pela Scaling Policy configurada.

Para garantir a estabilidade dos negócios e o agendamento preciso de recursos, não misture tipos de instância GPU e não-GPU no mesmo grupo de nós.

Você pode configure os tipos de instância usados para expansão das seguintes maneiras:

  • Tipos específicos: Especifique tipos de instância com base em dimensões como vCPU, memória, família de instâncias e arquitetura de cpu (a arquitetura de cpu da instância deve ser consistente com o OS image architecture).

    Ao usar o Terway, você pode visualize o maximum number of pods per node para o tipo de instância de destino na lista de tipos de instância.
  • Generalization configuration: Selecione uma lista de tipos de instância para usar ou excluir com base em atributos (como vCPU e memória) para melhorar ainda mais a taxa de sucesso da expansão.

Você pode consulte as recomendações de força de elasticidade no console ou visualize the node pool elasticity strength após a criação do grupo de nós.

Para obter informações sobre tipos de instância não suportados e recomendações de configuração de nós, consulte ecs instance type configuration recommendations.

Recursos de cloud e faturamento: imageecs Instance, imageGPU-accelerated Instance

Operating System

Para nós com dimensionamento automático, há suporte para imagens do Alibaba Cloud Linux, Windows e Windows Core.

Selecione uma imagem do Windows ou Windows Core, o sistema adiciona automaticamente o taint { effect: 'NoSchedule', key: 'os', value: 'windows' }.

Node Labels

Os rótulos de nó (node labels) adicionados à configuração do cluster são aplicados automaticamente aos nós criados durante uma expansão.

Importante

O dimensionamento automático de nós reconhece rótulos e taints de nós somente após serem mapeados para tags de grupo de nós, e há um limite para o número de tags de grupo de nós. Portanto, para um grupo de nós com dimensionamento automático, certifique-se de que o número total de tags ecs, taints e rótulos de nó configurados não exceda 12.

scaling policy

Configure como o grupo de nós seleciona instâncias durante o dimensionamento de nós.

  • Priority-based Policy: Dimensiona com base na prioridade dos vSwitches configurados para o cluster (a prioridade do vSwitch diminui de cima para baixo). Se uma instância não puder ser criada na zona de um vSwitch de maior prioridade, o próximo vSwitch de prioridade será usado automaticamente.

  • Cost Optimization: Dimensiona com base no preço unitário da vCPU, do menor para o maior.

    Se o grupo de nós usar Preemptible Instance, as instâncias spot serão priorizadas. Você também pode configurar a Percentage of On-Demand Instances (%). Se os tipos de instância spot não puderem ser criados devido ao estoque ou outros motivos, as instâncias de pagamento conforme o uso serão usadas automaticamente como suplemento.

  • Distribution Balancing: Distribui instâncias ecs uniformemente em várias zonas, mas apenas em cenários multizona. Se a distribuição ficar desequilibrada devido a estoque insuficiente ou outros motivos, você pode realizar uma operação de reequilíbrio.

Use Pay-as-you-go Instances When Spot Instances Are Insufficient

Isso requer que o método de faturamento seja definido como Spot Instance.

Quando ativado, se não for possível criar instâncias spot suficientes devido a preço, estoque ou outros motivos, o ACK tentará criar automaticamente instâncias sob demanda como suplemento.

Recursos de cloud e faturamento: imageecs Instance

Enable Supplemental Spot Instance

Isso requer que o método de faturamento seja definido como Spot Instance.

Quando ativado, ao receber uma mensagem do sistema de que uma instância spot está prestes a ser recuperada (5 minutos antes da recuperação), o ACK tentará expandir uma nova instância como compensação.

  • Compensação bem-sucedida: O ACK drena o nó antigo e o remove do cluster.

  • Falha na compensação: O ACK não drena o nó antigo. A instância ainda será recuperada e liberada após 5 minutos. Quando o estoque for restaurado ou as condições de preço forem atendidas, o ACK comprará automaticamente uma instância para manter o número desejado de nós. Para mais informações, consulte Best practices for spot instance node pools.

A liberação proativa de instâncias spot pode causar interrupções nos negócios. Para melhorar a taxa de sucesso da compensação, recomendamos também ativar Use Pay-as-you-go Instances When Spot Instances Are Insufficient.

Recursos de cloud e faturamento: imageecs Instance

Scaling Mode

Isso requer que o Auto Scaling do grupo de nós esteja ativado e o Scaling Mode definido como Auto.
  • Standard: Dimensiona criando e liberando instâncias ecs.

  • Swift: Dimensiona criando, parando e reiniciando instâncias ecs. Isso permite um dimensionamento mais rápido, reiniciando instâncias paradas quando necessário.

    Você não é cobrado por recursos de computação quando uma instância ecs é parada, apenas por taxas de armazenamento (exceto para famílias de instâncias com recursos de armazenamento local, como tipos de big data e SSD local). Para detalhes de faturamento e notas relacionadas sobre o modo de parada da instância ecs, consulte Economical mode.

Taints

Impede que os pods sejam agendados para o nó.

Etapa 3: (Opcional) Verifique o resultado

Após concluir estas etapas, o recurso de dimensionamento automático de nós estará pronto para uso. O grupo de nós indicará que o Auto Scaling está ativo e instale automaticamente o componente cluster-autoscaler.

O Auto Scaling está ativado para o grupo de nós

Na página Node Pools, a lista de grupos de nós mostra os grupos de nós para os quais o Auto Scaling está ativado.

O componente cluster-autoscaler está instalado

  1. No painel de navegação à esquerda da página de gerenciamento do cluster, escolha Workload > Deployments.

  2. Selecione o namespace kube-system. O componente cluster-autoscaler aparece na lista.

Perguntas frequentes

Categoria

Subcategoria

Link

Comportamento de expansão e redução de escala do dimensionamento automático de nós

Known limitations

Scale-out behavior

Scale-in behavior

Extension support

Does the cluster-autoscaler component support CRDs?

Comportamento de dimensionamento personalizado

Control scaling behavior using pods

How do I delay the scale-out response time of the cluster-autoscaler component for unschedulable pods?

Control scaling behavior using nodes

Componente cluster-autoscaler