Como faço para verificar, escalar, excluir ou drenar meus nós de processamento no Amazon EKS?
Usei eksctl ou o Console de Gerenciamento da AWS para iniciar meus nós de processamento do Amazon Elastic Kubernetes Service (Amazon EKS). Agora eu quero verificar, escalar, drenar ou excluir meus nós de processamento.
Resolução
Verificar seus nós de processamento
Para listar os nós de processamento que estão registrados no ambiente de gerenciamento do Amazon EKS, execute o seguinte comando:
kubectl get nodes -o wide
A saída retorna o nome, a versão Kubernetes, o sistema operacional (SO) e o endereço IP dos nós de processamento.
Para obter informações adicionais sobre um único nó de processamento, execute o seguinte comando:
kubectl describe node/node_name
Observação: substitua node_name pelo seu valor, por exemplo: ip-XX-XX-XX-XX.us-east-1.compute.internal.
A saída mostra mais informações sobre o nó de processamento, incluindo rótulos, taints, informações do sistema e status.
Escale seus nós de processamento
Observação: se seus grupos de nós aparecerem no console do Amazon EKS, use um grupo de nós gerenciados. Caso contrário, use um grupo de nós não gerenciados.
Use um dos métodos a seguir para escalar seus nós de processamento.
Escalar observações de processamento com eksctl
Para usar eksctl para escalar seus nós de trabalho gerenciados ou não gerenciados, execute o seguinte comando:
eksctl scale nodegroup --cluster=clusterName --nodes=desiredCount --name=nodegroupName
Observação: substitua clusterName, desiredCount e nodegroupName pelos seus valores.
Escalar nós de processamento sem eksctl
Para escalar seus nós de processamento gerenciados sem eksctl, edite a configuração do grupo de nós.
Escalar nós de processamento com o CloudFormation
Para usar o AWS CloudFormation para escalar seus nós de processamento não gerenciados, conclua as seguintes etapas:
- Use um modelo do CloudFormation para iniciar seus nós de processamento do Windows ou Linux.
- Modifique os parâmetros NodeAutoScalingGroupDesiredCapacity, NodeAutoScalingGroupMinSize ou NodeAutoScalingGroupMaxSize em sua pilha do CloudFormation.
Drene seus nós de processamento
Importante: a ação de drenagem isola o nó de processamento, e o Kubernetes não agenda mais novos pods no nó. Os pods que funcionam no nó de destino são removidos dos nós de drenagem e interrompidos.
Você pode drenar um grupo de nós inteiro ou um único nó de processamento.
Drenar todo o grupo de nós
Se você usar eksctl para iniciar seus nós de processamento, execute o seguinte comando:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName
Observação: substitua clusterName e nodegroupName pelos seus valores.
Para drenar o grupo de nós, execute o seguinte comando:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName --undo
Observação: substitua clusterName e nodegroupName pelos seus valores.
Se você não usar eksctl para iniciar seus nós de processamento, identifique e drene todos os nós de uma versão específica do Kubernetes. Por exemplo:
#!/bin/bash K8S_VERSION=1.18.8-eks-7c9bda nodes=$(kubectl get nodes -o jsonpath="{.items[?(@.status.nodeInfo.kubeletVersion==\"v$K8S_VERSION\")].metadata.name}") for node in ${nodes[@]} do echo "Draining $node" kubectl drain $node --ignore-daemonsets --delete-local-data done
Para identificar e drenar todos os nós de uma versão específica do Kubernetes, use o código a seguir:
#!/bin/bash K8S_VERSION=1.18.8-eks-7c9bda nodes=$(kubectl get nodes -o jsonpath="{.items[?(@.status.nodeInfo.kubeletVersion==\"v$K8S_VERSION\")].metadata.name}") for node in ${nodes[@]} do echo "Uncordon $node" kubectl uncordon $node done
Observação: para obter a versão do seu nó de processamento, execute o seguinte comando. O número da versão aparece na coluna VERSION:
$ kubectl get nodesNAME STATUS ROLES AGE VERSION ip-XXX-XXX-XX-XXX.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda ip-XXX-XXX-XX-XXX.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda
Drenar um único nó de processamento
Se você não usa eksctl para iniciar seus nós de processamento ou deseja drenar apenas um nó específico, isole normalmente seu nó de processamento:
kubectl drain node_name --ignore-daemonsets
Observação: substitua node_name pelo seu valor.
Para desfazer o isolamento, execute o seguinte comando:
kubectl uncordon node_name
Observação: substitua node_name pelo seu valor.
Para migrar suas aplicações existentes para um novo grupo de nós de processamento, consulte Migrar para um novo grupo de nós.
Exclua seus nós de processamento
Importante: a ação de exclusão é irrecuperável.
Se você usar eksctl, execute o seguinte comando:
eksctl delete nodegroup --cluster=clusterName --name=nodegroupName
Se você tiver um grupo de nós gerenciados, conclua as etapas em Excluir um grupo de nós gerenciados.
Se você tiver um grupo de nós não gerenciado e tiver usado um modelo do CloudFormation para iniciar seus nós de processamento, exclua a pilha. Você deve excluir a pilha que criou para seu grupo de nós do Windows ou Linux.
Se você tiver um grupo de nós não gerenciado e não tiver usado um modelo do CloudFormation para iniciar seus nós de processamento, exclua o grupo do Auto Scaling. Se você não usou um grupo do Auto Scaling, encerre a instância diretamente.
Conteúdo relevante
- AWS OFICIALAtualizada há 7 meses
- AWS OFICIALAtualizada há 2 anos