Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Manually scale a node pool

Última atualização: Aug 28, 2026

Defina o número esperado de nós em um node pool para aumentar a capacidade devido ao crescimento de tráfego ou reduzi-la para cortar custos.

O ACK oferece suporte ao dimensionamento automático de nós ou dimensionamento instantâneo de nós para ajustar os recursos dos nós conforme a carga de trabalho.

Como funciona

O campo Expected Nodes define a quantidade alvo de nós para um node pool. Após o envio da alteração, o ACK ajusta o número real de nós para atingir essa meta e cria ou remove instâncias ECS conforme necessário.

Scale out — aumente o valor de Expected Nodes acima da contagem atual. O ACK provisiona instâncias ECS por meio do Auto Scaling, executa o script cloud-init em cada uma delas e as adiciona ao pool. Se a criação falhar, o ACK tenta novamente automaticamente. Os tipos de instância e as zonas dependem da política de dimensionamento do node pool.

Scale in — diminua o valor de Expected Nodes abaixo da contagem atual. Apenas instâncias ECS com pagamento conforme o uso são liberadas durante o scale-in. O ciclo de vida do disco do sistema e dos discos de dados de um nó está vinculado ao próprio nó. Quando um nó é liberado durante o scale-in, seus discos também são liberados. Todos os dados neles contidos são perdidos permanentemente e não podem ser recuperados. Para dados que exigem persistência, gerencie-os com um PersistentVolume (PV) para desacoplar o armazenamento do ciclo de vida do nó.

Importante

Quando o scale-in é acionado pela alteração de Expected Nodes, o ACK remove os nós mesmo que o drain do nó falhe. Caso você tenha um requisito rigoroso de drain, remova o nó alvo manualmente. Consulte Remover um nó.

A ordem de remoção durante o scale-in depende da política de dimensionamento:

Política de dimensionamento

Ordem de remoção

Priority

Instâncias criadas recentemente são removidas primeiro.

Distribution balancing

As zonas são filtradas pela política; instâncias criadas recentemente são removidas primeiro para equilibrar as contagens entre as zonas.

Cost optimization

As instâncias são removidas em ordem decrescente de preço da vCPU.

Faturamento durante o scale-out

O faturamento baseia-se nas especificações reais das instâncias ECS criadas. Por exemplo, com dois tipos de instância, faturamento por pagamento conforme o uso e a política de dimensionamento Priority:

  • Duas instâncias do Nó A são criadas na zona do vSwitch de primeira prioridade.

  • Se o estoque do Nó A for insuficiente, três instâncias do Nó B são criadas na zona do vSwitch de segunda prioridade.

Custo por uma hora = (preço unitário do Nó A × 2 × 1) + (preço unitário do Nó B × 3 × 1).

Node pools de GPU

Ao adicionar instâncias das famílias de ECS Bare Metal Instance ebmgn7 ou ebmgn7e, o ACK redefine qualquer configuração de Multi-Instance GPU (MIG) retida nessas instâncias. Essa redefinição consome tempo e pode impedir que as instâncias ingressem no cluster.

Pré-requisitos

Certifique-se de ter:

  • Um cluster ACK com pelo menos um node pool

  • (Opcional, usuários RAM) A função AliyunOOSLifecycleHook4CSRole atribuída à sua conta Alibaba Cloud e a permissão AliyunRAMReadOnlyAccess anexada ao usuário RAM.

Dimensionar um node pool

Importante

Não execute kubectl delete node. Esse comando remove nós do Kubernetes sem liberar as instâncias ECS correspondentes, fazendo com que o node pool perca o controle da capacidade. Use o console ACK para dimensionar node pools.

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

  2. Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Nodes > Node Pools.

  3. Localize o node pool a ser dimensionado e clique em Scale na coluna Actions.

  4. (Opcional) Se o CloudOps Orchestration Service (OOS) ainda não tiver sido autorizado, clique em AliyunOOSLifecycleHook4CSRole para criar a função e concluir a autorização.

    Se estiver usando um usuário RAM, garanta que a conta Alibaba Cloud possua a função AliyunOOSLifecycleHook4CSRole antes de anexar AliyunRAMReadOnlyAccess ao usuário RAM.
  5. Defina o valor de Expected Nodes e confirme a alteração. A coluna Status passará por Updating, Scaling Out (ou Removing) e, em seguida, Active.

    • Quando o status exibir Scaling Out, o node pool estará sendo expandido. Ao retornar para Active, o scale-out estará concluído.

    • Quando o status exibir Removing, o node pool estará sendo reduzido. Ao retornar para Active, o scale-in estará concluído.

    Importante

    Se o grupo de segurança do cluster bloquear o acesso a 100.64.0.0/10, novos nós não conseguirão ingressar no cluster.

Para visualizar detalhes da tarefa de scale-out, clique em no nome do node pool e abra a aba Scaling Activities.

Visualize o log operacional em um nó:

grep cloud-init /var/log/messages
Após um nó ingressar no pool, /var/log/messages é limpo e retém apenas entradas de falha de ingresso. Se um nó falhar ao ingressar, o log é sincronizado com o resultado da tarefa na aba Cluster Tasks.

Operações a evitar

Importante

As operações a seguir ignoram o mecanismo de contagem esperada e podem causar loops de reconciliação ou perda de dados.

Operação O que acontece O que fazer em vez disso
Excluir nós com kubectl delete node O ACK rastreia os nós esperados com base nas instâncias ECS do grupo de dimensionamento, e não na lista de nós do Kubernetes. A instância ECS continua em execução, mas o nó aparece como Unknown. Clique em no nome do node pool, abra a aba Nodes e remova os nós. Selecione Release ECS Instance conforme necessário. Nós adicionados manualmente e nós por assinatura devem ser liberados no ECS console.
Liberar instâncias ECS diretamente pelo console ECS ou API O node pool detecta a discrepância e cria novas instâncias ECS para restaurar a contagem esperada. Use o console ACK para remover nós. Consulte Remover um nó. Nós adicionados manualmente e nós por assinatura exigem liberação manual no ECS console.
Remover instâncias ECS do grupo de dimensionamento no console Auto Scaling (sem alterar a contagem esperada) O node pool detecta a mudança e cria instâncias de substituição. Não modifique grupos de dimensionamento usados por node pools diretamente no console Auto Scaling.
Deixar instâncias ECS por assinatura expirarem O node pool detecta a liberação e cria instâncias de substituição. Remova ou renove instâncias por assinatura antes que elas expirem. Consulte Remover um nó e Renovar uma instância por assinatura.
Ativar verificações de integridade no grupo de dimensionamento no console Auto Scaling Quando uma verificação de integridade identifica uma instância não saudável (como suspensa), o Auto Scaling cria uma instância ECS de substituição. As verificações de integridade ficam desativadas por padrão para grupos de dimensionamento usados pelo ACK. Não modifique essas configurações.

Solucionar falhas de dimensionamento

Se o dimensionamento falhar, clique em no nome do cluster na página Clusters, abra a aba Cluster Tasks e clique em View Cause para ver os detalhes do erro.

Código de erro Causa Solução
RecommendEmpty.InstanceTypeNoStock Estoque insuficiente de ECS na zona atual. Modify the node pool para adicionar vSwitches em zonas diferentes e configurar múltiplos tipos de instância. Consulte Check the scalability of a node pool.
NodepoolScaleFailed.FailedJoinCluster Falha dos nós ao ingressar no cluster ACK. Faça login no nó e execute grep cloud-init /var/log/messages para verificar o erro.
InvalidAccountStatus.NotEnoughBalance / InsufficientBalance.CreditPay / Account.Arrearage Saldo insuficiente na conta. Recarregue sua conta.
InvalidParameter.NotMatch (incompatibilidade de modo de inicialização) O tipo de instância não suporta o modo de inicialização (BIOS) da imagem do SO. Selecione um tipo de instância diferente. Verifique o SO e o ID da imagem na aba Overview do node pool. Chame DescribeImageSupportInstanceTypes para consultar os tipos de instância suportados.
QuotaExceed.ElasticQuota Cota de ECS excedida para o tipo de instância especificado na região atual. Selecione um tipo de instância diferente, reduza as instâncias ECS existentes ou solicite um aumento de cota no Quota Center.
InvalidResourceType.NotSupported O tipo de instância não é suportado ou está fora de estoque na zona atual. Chame DescribeAvailableResource para encontrar tipos de instância suportados na zona e, em seguida, atualize o node pool.
InvalidImage.NotSupported A imagem do SO não suporta instâncias com segurança aprimorada. Selecione um tipo de instância diferente. Consulte Criar uma instância confiável no console ECS para ver as imagens suportadas.
InvalidParameter.NotMatch (incompatibilidade de imagem vTPM) A imagem do SO exige um tipo de instância habilitado para vTPM. Selecione um tipo de instância diferente. Verifique o SO e o ID da imagem na aba Overview do node pool.
QuotaExceeded.PrivateIpAddress O vSwitch atual não possui endereços IP privados disponíveis. Adicione mais vSwitches ao node pool e tente novamente.
InvalidParameter.KmsNotEnabled A chave do Key Management Service (KMS) está desativada. Faça login no console KMS e ative a chave.
InvalidInstanceType.NotSupported O tipo de instância não suporta a arquitetura da imagem do SO. Selecione um tipo de instância diferente. Chame DescribeImageSupportInstanceTypes para consultar tipos de instância compatíveis. Consulte OS images para imagens suportadas pelo ACK.
ApiServer.InternalError / Err.QueryEndpoints O servidor de API do cluster ACK está inacessível. Verifique a acessibilidade do servidor de API. Consulte Solucionar problemas de acesso ao cluster no console ACK.
RecommendEmpty.InstanceTypeNotAuthorized Sem permissão para usar o tipo de instância especificado. Submit a ticket para solicitar permissões de ECS.
RecommendEmpty.DiskTypeNoStock Estoque insuficiente de discos em nuvem na zona. Adicione mais vSwitches ou selecione um tipo de disco diferente.
InvalidParameter.KMSKeyId.KMSUnauthorized Sem permissão para acessar o KMS. No ECS console, atribua a função AliyunECSDiskEncryptDefaultRole ao ECS. Consulte Encryption-related permissions.
InvalidParameter.Conflict O tipo de disco em nuvem não é compatível com o tipo de instância. Selecione um tipo de instância ou disco diferente.
NotSupportSnapshotEncrypted.DiskCategory A criptografia do disco do sistema requer um ESSD. Selecione um ESSD. Para tipos de disco e criptografia, consulte Disk types and encryption.
ScalingActivityInProgress O node pool já está sendo dimensionado. Aguarde a conclusão da atividade de dimensionamento atual antes de tentar novamente. Não dimensione node pools diretamente no console Auto Scaling.
Instance.StartInstanceFailed Falha ao iniciar instâncias ECS. Tente novamente. Se o problema persistir, submit a ticket para a equipe do ECS.
OperationDenied.NoStock O tipo de instância está fora de estoque na zona especificada. Selecione um tipo de instância diferente. Consulte Check the scalability of a node pool.
NodepoolScaleFailed.WaitForDesiredSizeTimeout A tarefa de scale-out atingiu o tempo limite. No console ACK, acesse Clusters > nome do cluster > Nodes > Node Pools, clique em no nome do node pool e abra a aba Scaling Activities para visualizar os detalhes da tarefa.
ApiServer.TooManyRequests O servidor de API do Kubernetes limitou a solicitação. Reduza a frequência de solicitações ou tente novamente mais tarde.
NodepoolScaleFailed.PartialSuccess Alguns nós falharam ao serem criados devido a estoque insuficiente. Altere os tipos de instância configurados para o node pool. Consulte Check the scalability of a node pool. Consulte Edit a node pool.

Próximos passos