Remova nós desnecessários de um cluster ACK Edge para reduzir a infraestrutura sem interromper cargas de trabalho em execução.
Pré-requisitos
Antes de começar, verifique se você tem:
Um cluster ACK Edge. Consulte Criar um cluster ACK Edge.
Um cliente kubectl conectado ao cluster. Consulte Conectar-se a um cluster ACK via kubectl.
Antes de remover um nó
O que acontece ao remover um nó
Os pods do nó migram para outros nós do cluster, o que pode causar interrupções de serviço. Remova os nós fora dos horários de pico e faça backup dos dados antes de prosseguir.
O nó entra no estado Unschedulable durante a remoção.
Limites rígidos
Somente nós worker podem ser removidos. Não é possível remover nós master.
Clusters ACK Edge suportam dois tipos de nó: nós de borda e nós na nuvem. Ambos podem ser removidos, mas pelo menos um nó na nuvem deve permanecer sempre no cluster.
Aviso: uso de kubectl delete node em um nó na nuvem
Use o console ACK para remover nós. Se você executar kubectl delete node em um nó na nuvem, observe que:
Não será possível adicionar o nó a nenhum outro cluster ACK após a remoção.
A instância Elastic Compute Service (ECS) onde o nó está implantado será liberada após a remoção.
Pool de nós de borda
Faça login no console ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Nodes > Node Pools.
Clique no nome do pool de nós de borda.
Na parte inferior da aba Overview, selecione o nó a remover e clique em Remove Node.
-
No painel Remove Node, leia as notas de uso, marque I understand the above information and want to remove the node(s) e clique em OK.
A liberação de instâncias ECS e a drenagem automática de nós não são suportadas ao remover nós de borda de um pool de nós de borda.
-
Após remover o nó do cluster, execute o seguinte comando no nó de borda para desinstalar os componentes do Kubernetes com o edgeadm:
Espaço reservado
Descrição
Exemplo
[region]ID da região do cluster
cn-hangzhou[clusterVersion]Versão do Kubernetes do cluster
1.22.15-aliyunedge.1[arch]Arquitetura de CPU do nó de borda
amd64wget http://aliacs-k8s-[region].oss-[region].aliyuncs.com/public/pkg/run/attach/[clusterVersion]/[arch]/edgeadm -O edgeadm; chmod u+x edgeadm; ./edgeadm resetSubstitua os espaços reservados pelos valores reais do seu cluster:
Verificar a remoção
Execute kubectl get nodes na máquina local para confirmar que o nó não aparece mais na lista de nós do cluster.
Pool de nós na nuvem
Faça login no console ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Nodes > Node Pools.
Clique no nome do pool de nós na nuvem.
Na aba Nodes, selecione os nós a remover e clique em Batch Remove na parte inferior da página.
-
Na caixa de diálogo Remove Node, configure as opções abaixo conforme necessário e clique em OK:
-
Release ECS Instance: Libera a instância ECS subjacente e seus discos de dados após a remoção do nó.
Somente instâncias ECS com pagamento conforme o uso e seus discos de dados são liberados.
Instâncias ECS por assinatura são liberadas automaticamente após o término do período de assinatura.
Se você não selecionar esta opção, a instância ECS continuará gerando cobranças após a remoção do nó.
-
Drain Node: Migra todos os pods dos nós selecionados para outros nós do cluster antes da remoção. Certifique-se de que os outros nós tenham recursos suficientes para hospedar os pods migrados. Como alternativa, drene os nós manualmente antes da remoção:
kubectl drain <node-name> [options]<node-name>usa o formato<region-name>.<node-id>. Exemplo:cn-hangzhou.i-i-bp1asavedmte377c3****Opções comuns:
--force --ignore-daemonsets --delete-local-dataExecute
kubectl drain --helppara obter a lista completa de opções.
-
Verificar a remoção
Execute kubectl get nodes para confirmar que os nós removidos não aparecem mais no cluster.