Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Manually scale a node pool

Última atualização: Jun 27, 2026

Defina o número esperado de nós em um pool de nós para expandir a capacidade em caso de aumento de tráfego ou reduzir a escala para diminuir 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 pool de nós. Após o envio da alteração, o ACK ajusta a contagem real de nós para atingir esse alvo 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 pool de nós.

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 a redução de escala. 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 a redução de escala, seus discos também são liberados. Todos os dados nesses discos são perdidos permanentemente e não podem ser recuperados. Para dados que exigem persistência, gerencie-os com um PersistentVolume (PV) e desacople o armazenamento do ciclo de vida do nó.

Importante

Quando a redução de escala é acionada pela alteração de Expected Nodes, o ACK remove os nós mesmo se a drenagem do nó falhar. Caso você tenha um requisito rigoroso de drenagem, remova o nó alvo manualmente. Consulte Remover um nó.

A ordem de remoção durante a redução de escala depende da política de dimensionamento:

Política de dimensionamento

Ordem de remoção

Prioridade

Instâncias criadas recentemente são removidas primeiro.

Balanceamento de distribuição

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

Otimização de custos

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 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).

Pools de nós 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

Verifique se você tem:

  • Um cluster ACK com pelo menos um pool de nós

  • (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 pool de nós

Importante

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

  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 alvo. No painel de navegação à esquerda, escolha Nodes > Node Pools.

  3. Localize o pool de nós 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 alterna entre Updating, Scaling Out (ou Removing) e, em seguida, Active.

    • Quando o status exibir Scaling Out, o pool de nós estará sendo expandido. Ao retornar para Active, a expansão estará concluída.

    • Quando o status exibir Removing, o pool de nós estará sendo reduzido. Ao retornar para Active, a redução estará concluída.

    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 expansão, clique em no nome do pool de nós 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 comparando com as instâncias ECS no grupo de dimensionamento, e não pela 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 pool de nós, 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 console ECS.
Liberar instâncias ECS diretamente pelo console ECS ou API O pool de nós 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 console ECS.
Remover instâncias ECS do grupo de dimensionamento no console Auto Scaling (sem alterar a contagem esperada) O pool de nós detecta a alteração e cria instâncias de substituição. Não modifique grupos de dimensionamento usados por pools de nós diretamente no console Auto Scaling.
Deixar instâncias ECS por assinatura expirarem O pool de nós detecta a liberação e cria instâncias de substituição. Remova ou renove instâncias por assinatura antes que 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 íntegra (como suspensa), o Auto Scaling cria uma instância ECS de substituição. As verificações de integridade estão 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. Modifique o pool de nós para adicionar vSwitches em zonas diferentes e configurar múltiplos tipos de instância. Consulte Verificar a escalabilidade de um pool de nós.
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 pool de nós. 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á sem estoque na zona atual. Chame DescribeAvailableResource para encontrar tipos de instância suportados na zona e, em seguida, atualize o pool de nós.
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 imagens suportadas.
InvalidParameter.NotMatch (incompatibilidade de imagem vTPM) A imagem do SO exige um tipo de instância com vTPM ativado. Selecione um tipo de instância diferente. Verifique o SO e o ID da imagem na aba Overview do pool de nós.
QuotaExceeded.PrivateIpAddress O vSwitch atual não possui endereços IP privados disponíveis. Adicione mais vSwitches ao pool de nós 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 Imagens de SO 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. Envie um 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 console ECS, atribua a função AliyunECSDiskEncryptDefaultRole ao ECS. Consulte Permissões relacionadas à criptografia.
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 Tipos de disco e criptografia.
ScalingActivityInProgress O pool de nós já está sendo dimensionado. Aguarde a conclusão da atividade de dimensionamento atual antes de tentar novamente. Não dimensione pools de nós diretamente no console Auto Scaling.
Instance.StartInstanceFailed Falha ao iniciar instâncias ECS. Tente novamente. Se o problema persistir, envie um ticket para a equipe de ECS.
OperationDenied.NoStock O tipo de instância está sem estoque na zona especificada. Selecione um tipo de instância diferente. Consulte Verificar a escalabilidade de um pool de nós.
NodepoolScaleFailed.WaitForDesiredSizeTimeout A tarefa de expansão atingiu o tempo limite. No console ACK, acesse Clusters > nome do cluster > Nodes > Node Pools, clique em no nome do pool de nós 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 na criação devido a estoque insuficiente. Altere os tipos de instância configurados para o pool de nós. Consulte Verificar a escalabilidade de um pool de nós. Consulte Editar um pool de nós.

Próximos passos