Exclua nós de trabalho de um node pool ou cluster ACK, com a opção de drenar pods e liberar instâncias.
Casos de uso
Replace an ECS instance: Exclua uma instância existente do Elastic Compute Service (ECS) de um node pool e adicione uma nova.
Mova um nó entre node pools: Exclua o nó de seu node pool atual e adicione-o ao node pool de destino.
Altere a configuração ou o método de faturamento da instância: Exclua o nó, faça as alterações no console do ECS e readicione o nó ao node pool.
Corrija exceções de nó: Exclua e readicione o nó para acionar a reinicialização. Faça backup dos dados do disco do sistema antes, pois essa ação redefinirá o nó ao substituir o disco do sistema.
Gerencie nós livres: Clusters criados antes do lançamento do recurso de node pool podem conter nós livres. Exclua-os ou mova-os para um node pool para gerenciamento centralizado.
Controle os alvos de redução de escala: Ao reduzir a escala de um node pool com scale-out manual ou automático ativado, exclua instâncias ECS específicas para reduzir custos.
Pré-requisitos
Certifique-se de que:
Outros nós no cluster tenham recursos suficientes para hospedar os pods evacuados.
As regras de afinidade de pods e as políticas de agendamento permitam o reagendamento para outros nós.
Como funciona
Quando você remove um nó no console do ACK, o sistema executa a seguinte sequência:
Drenar (se Drain Node estiver selecionado): O ACK evacua os pods para outros nós disponíveis, respeitando as configurações de PodDisruptionBudget (PDB). Os pods têm até 30 minutos para encerramento controlado, independentemente de
terminationGracePeriodSeconds. Se algum pod não for encerrado dentro desse período, a drenagem falha, o sistema ignora as etapas subsequentes e você precisa tentar novamente manualmente.Remover: O sistema remove o nó do cluster ou do node pool.
Liberar (se Release ECS Instance estiver selecionado): O sistema libera a instância ECS e os discos de dados anexados.
Se Expected Nodes estiver configurado, o sistema dimensiona o node pool automaticamente para restaurar a contagem esperada após a remoção.
Notas de uso
Exclua os nós a partir do ACK console. Não use
kubectl delete node, o console do ECS, o console do Auto Scaling ou operações de API para remover ou liberar instâncias ECS.Renove as instâncias ECS por assinatura antes que expirem. Uma instância expirada ou liberada interrompe o nó e o remove do console do ACK.
Se Expected Nodes estiver configurado, o node pool ajusta sua escala automaticamente para manter a contagem esperada após a remoção. O ciclo de vida dos discos do sistema e de dados está vinculado ao nó. Ao liberar um nó durante a remoção, o sistema também libera os discos anexados. Todos os dados são excluídos permanentemente e não podem ser recuperados. Para persistir dados além do ciclo de vida do nó, use Persistent Volumes (PVs).
Exclua nós de um node pool
Ao excluir um nó, o sistema migra os pods para outros nós, o que pode causar interrupções temporárias no service. Faça backup dos dados do nó e execute as remoções fora dos horários de pico.
Faça login no ACK console. No painel de navegação à esquerda, clique em ACK consoleClusters.
Na página Clusters, clique no cluster de destino. No painel de navegação à esquerda, escolha Nodes > Node Pools.
Clique no nome do node pool que contém o nó. Na aba Nodes, selecione os nós a serem removidos e clique em Batch Remove na parte inferior da página.
-
Configure as opções de remoção:
-
Drain Node: O ACK evacua os pods para outros nós antes da remoção. Desmarque esta opção apenas se você já tiver drenado o nó.
Se os seus pods exigirem um período de encerramento controlado superior a 30 minutos, drene o nó manualmente primeiro e desmarque Drain Node antes de prosseguir:
kubectl drain <nodeName> [options]Espaço reservado
Descrição
Exemplo
<nodeName>Nome do nó no formato
<region-id>.<instance-id>cn-hangzhou.i-bp1asavedmte377c3****[options]Flags opcionais de drenagem
--force --ignore-daemonsets --delete-local-dataExecute
kubectl drain --helppara obter a lista completa de opções. Release ECS Instance: Se selecionado, o sistema libera a instância ECS e os discos de dados anexados. Essa liberação se aplica apenas a instâncias de pagamento conforme o uso. Se desmarcado, a instância continuará sendo faturada após a remoção. O sistema libera instâncias por assinatura automaticamente após a expiração. Em node pools com o Auto Mode ativado, o sistema gerencia automaticamente o ciclo de vida do nó, dimensiona os nós com base na demanda de carga de trabalho e limpa completamente os recursos ECS subjacentes ao remover os nós. Para liberar uma instância por assinatura antes da expiração, request a refund ou change the billing method to pay-as-you-go e depois libere-a.
-
Leia as instruções na tela e conclua a remoção.
-
Verifique se os nós foram removidos:
kubectl get nodesOs nós removidos não aparecerão mais na saída.
Exclua nós de um cluster
Ao excluir um nó, o sistema migra os pods para outros nós, o que pode causar interrupções temporárias no service. Faça backup dos dados do nó e execute as remoções fora dos horários de pico.
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no cluster de destino. No painel de navegação à esquerda, escolha Nodes > Nodes.
Selecione os nós a serem removidos e clique em Batch Remove na parte inferior da página.
-
Configure as opções de remoção:
-
Drain Node: O ACK evacua os pods para outros nós antes da remoção. Desmarque esta opção apenas se você já tiver drenado o nó.
Se os seus pods exigirem um período de encerramento controlado superior a 30 minutos, drene o nó manualmente primeiro e desmarque Drain Node antes de prosseguir:
kubectl drain <nodeName> [options]Espaço reservado
Descrição
Exemplo
<nodeName>Nome do nó no formato
<region-id>.<instance-id>cn-hangzhou.i-bp1asavedmte377c3****[options]Flags opcionais de drenagem
--force --ignore-daemonsets --delete-local-dataExecute
kubectl drain --helppara obter a lista completa de opções. Release ECS Instance: Se selecionado, o sistema libera a instância ECS e os discos de dados anexados. Essa liberação se aplica apenas a instâncias de pagamento conforme o uso. Se desmarcado, a instância continuará sendo faturada após a remoção. O sistema libera instâncias por assinatura automaticamente após a expiração. Para liberar uma instância por assinatura antes da expiração, request a refund ou change the billing method to pay-as-you-go e depois libere-a.
-
Leia as instruções na tela e conclua a remoção.
-
Verifique se os nós foram removidos:
kubectl get nodesOs nós removidos não aparecerão mais na saída.
Após a remoção, você pode re-add the node to the cluster .
Solução de problemas
Falha na remoção do nó
A remoção do nó geralmente falha porque um pod excedeu o período de encerramento controlado de 30 minutos ou porque um PodDisruptionBudget (PDB) bloqueou a evacuação.
Drene o nó manualmente e depois exclua-o com Drain Node desmarcado:
kubectl drain <nodeName> --force --ignore-daemonsets --delete-local-data
Substitua <nodeName> pelo nome do nó no formato <region-id>.<instance-id> — por exemplo, cn-hangzhou.i-bp1asavedmte377c3****.
Se o PDB bloquear a drenagem, atualize as configurações do PDB para corresponder à sua tolerância a interrupções e tente novamente.
Próximas etapas
Adicione nós de volta ao cluster: Add existing ECS instances to an ACK cluster ou automatically add nodes
Dimensione um node pool ajustando o Expected Nodes: Manually scale a node pool
Exclua nós via API: RemoveNodePoolNodes e DeleteClusterNodes
Redefina o disco do sistema de um nó: Re-initialize a system disk