Remova nós de trabalho com opções para drenar pods previamente e liberar as instâncias ECS subjacentes.
Sempre remova nós pelo console do ACK. Executar kubectl delete node ignora o fluxo de remoção e deixa a instância ECS em um estado inconsistente.
Casos de uso
Remova um nó quando você precisar:
Desativar um nó não gerenciado — Clusters antigos, criados antes do suporte a node pools, podem ter nós de trabalho não gerenciados. Remova o nó e depois add it to an existing node pool para gerenciamento centralizado.
Substituir uma instância ECS — Adicione a nova instância ECS ao node pool primeiro e, em seguida, remova a antiga.
Reduzir um node pool — Elimine uma instância ECS específica de um node pool com dimensionamento manual ou automático para reduzir custos.
Migrar um nó entre node pools — Retire o nó do node pool de origem e adicione-o ao node pool de destino.
Redimensionar uma instância ECS — Remova o nó, altere o tipo de instância no console do ECS e adicione o nó novamente.
Alterar o método de faturamento — Exclua o nó, mude o método de faturamento de pagamento conforme o uso para assinatura no console do ECS e readicione o nó.
-
Reinicializar um nó anormal — Remova o nó e adicione-o novamente para redefinir o disco do sistema.
AvisoA reinicialização de um nó substitui seu disco do sistema. Faça backup dos dados no disco do sistema antes de continuar.
O que acontece ao remover um nó
Ao remover um nó, o ACK executa estas etapas:
Drena o nó (se Drain Node estiver selecionado) — O ACK evacua todos os pods para outros nós disponíveis antes da remoção. Isso evita interrupções de service, mas exige capacidade suficiente nos nós restantes.
Remove o nó do cluster — Se o node pool tiver uma contagem de Expected Nodes, o ACK a ajustará automaticamente.
Libera a instância ECS (se Release ECS Instance estiver selecionado) — O ACK libera a instância ECS e seus discos de dados. Essa ação é permanente.
Analise as duas opções de remoção antes de começar:
|
Opção |
Quando selecionar |
Efeito se não selecionado |
|
Drain Node |
Sempre, exceto se já tiver drenado manualmente |
Os pods não são evacuados antes da remoção, o que pode interromper services |
|
Release ECS Instance |
Quando a instância ECS não for mais necessária |
A instância ECS continua em execução e gerando cobrança; você a gerencia manualmente |
Observações de uso
Não libere nós nem remova instâncias no console do ECS, no console do Auto Scaling (ESS) ou por meio de suas APIs. Não permita que instâncias por assinatura sejam liberadas automaticamente ao expirar. Essas ações param o nó e o removem do console do ACK. Caso o node pool tenha uma contagem de Expected Nodes, o ACK fará scale out para substituir a instância removida.
Faça backup dos dados antes de remover um nó. A migração de pods durante a remoção pode afetar services em execução.
Verifique se as políticas de afinidade de nó e de agendamento permitem o reagendamento para outros nós.
Os dados do disco de dados e do disco do sistema são perdidos permanentemente quando um nó é liberado. Para persistir dados além do ciclo de vida do nó, use um PersistentVolume (PV).
Detalhes sobre a drenagem de nó
O tempo limite padrão para encerramento graceful durante a drenagem de um nó é de 30 minutos, mesmo que o terminationGracePeriodSeconds de um pod esteja configurado para um valor maior (por exemplo, 40 minutos). Se um pod não for encerrado dentro de 30 minutos, o ACK o encerra à força, a drenagem falha e a remoção do nó é interrompida. Para tentar novamente, reinicie a operação no console.
Se seus pods exigirem um período de encerramento mais longo, drene o nó manualmente primeiro:
kubectl drain <nodeName> [options]
|
Placeholder |
Descrição |
Exemplo |
|
|
Nome do nó a ser drenado |
|
|
|
Flags opcionais |
|
Execute kubectl drain --help para obter a lista completa de opções.
Após a evacuação de todos os pods, desmarque Drain Node e remova o nó.
Pod Disruption Budget (PDB): A drenagem respeita as regras de PDB do seu cluster. Se um PDB impedir a evacuação, a drenagem falhará. Revise e ajuste as regras de PDB relevantes antes de drenar.
Detalhes sobre a liberação de instância ECS
Apenas instâncias ECS com modelo pay-as-you-go e seus discos de dados podem ser liberados imediatamente.
Instâncias ECS por Subscription são liberadas automaticamente quando a assinatura expira. Para liberação antecipada, request a refund ou convert the billing method to pay-as-you-go primeiro.
Para node pools com smart hosting, o ACK gerencia o ciclo de vida do nó automaticamente com base na carga de trabalho. A remoção de um nó elimina os recursos ECS subjacentes.
Remover um nó de um node pool
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, escolha Nodes > Node Pools.
Clique no nome do node pool desejado e acesse a aba Nodes.
-
Remova o nó:
Nó único: Na coluna Actions, escolha More > Remove para o nó alvo.

Vários nós: Selecione os nós desejados e clique em Batch Remove.

Na caixa de diálogo, selecione Drain Node e Release ECS Instance conforme necessário e confirme.

Remover um nó de um cluster
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, escolha Nodes > Nodes.
-
Na página Nodes, remova o nó:
Nó único: Na coluna Actions, escolha More > Remove para o nó alvo.

Vários nós: Selecione os nós desejados e clique em Batch Remove.

Na caixa de diálogo, selecione Drain Node e Release ECS Instance conforme necessário e confirme.

Solução de problemas
Falha na remoção do nó
A remoção de nós geralmente falha devido ao tempo limite de encerramento graceful ou a um PDB que bloqueia a evacuação. Para resolver, drene o nó manualmente primeiro:
kubectl drain <nodeName> [options]
|
Placeholder |
Descrição |
Exemplo |
|
|
Nome do nó a ser drenado |
|
|
|
Flags opcionais |
|
Após a evacuação de todos os pods, remova o nó com Drain Node desmarcado.
Próximas etapas
Para adicionar um nó novamente ao cluster ou node pool, consulte Add existing nodes.
Para remover nós programaticamente, veja RemoveNodePoolNodes e DeleteClusterNodes.
Para migrar nós não gerenciados para um node pool, consulte Migrate unmanaged nodes to a node pool.
Para ajustar manualmente o tamanho do node pool usando Expected Nodes, veja Manually scale a node pool.
Para reinicializar um disco do sistema após readicionar um nó, consulte Re-initialize a system disk.