¿Cómo puedo comprobar, escalar, vaciar o eliminar mis nodos de trabajo en Amazon EKS?
He usado eksctl o la consola de Amazon Elastic Kubernetes Service (Amazon EKS) para comprobar, escalar, vaciar o eliminar mis nodos de trabajo.
Solución
Comprobación de los nodos de trabajo
Para generar un listado de los nodos de trabajo registrados en el plano de control de Amazon EKS, ejecuta el siguiente comando:
kubectl get nodes -o wide
En el resultado, puedes ver el nombre, la versión de Kubernetes, el sistema operativo (SO) y la dirección IP de los nodos de trabajo.
Para obtener información adicional sobre un nodo de trabajo específico, ejecuta el siguiente comando:
kubectl describe node/node_name
Nota: Sustituye node_name por el nombre de recurso de Amazon (ARN) de tu nodo de trabajo. Por ejemplo, ip-AA-BB-CC-DD.us-east-1.compute.internal.
El resultado muestra información sobre el nodo de trabajo, incluidas las etiquetas, los taints, la información del sistema y el estado.
Escalamiento de los nodos de trabajo
Nota: Si tus grupos de nodos aparecen en la consola de Amazon EKS, utiliza un grupo de nodos administrado para escalar los nodos de trabajo. De lo contrario, utiliza un grupo de nodos no administrado.
Utiliza uno de los siguientes métodos para escalar los nodos de trabajo.
Escalamiento de nodos de trabajo con eksctl
Para utilizar eksctl para escalar tus nodos de trabajo, administrados o no, ejecuta el siguiente comando:
eksctl scale nodegroup --cluster=clusterName --nodes=desiredCount --name=nodegroupName
Nota: Sustituye clusterName por el nombre de tu clúster, desiredCount por el número de nodos a los que escalar y nodegroupName por el nombre del grupo de nodos.
Escalamiento de nodos de trabajo sin eksctl
Para escalar tus nodos de trabajo administrados sin eksctl, edita la configuración del grupo de nodos.
Escalamiento de nodos de trabajo con CloudFormation
Para usar AWS CloudFormation para escalar tus nodos de trabajo no administrados, utiliza una plantilla de CloudFormation para iniciar tus nodos de trabajo para Windows o Linux. A continuación, modifica los parámetros NodeAutoScalingGroupDesiredCapacity, NodeAutoScalingGroupMinSize o NodeAutoScalingGroupMaxSize en tu pila de CloudFormation.
Vaciado de nodos de trabajo
Importante: La acción de vaciado aísla el nodo de trabajo, por lo que Kubernetes deja de programar nuevos pods en el nodo. Kubernetes elimina y evita que los pods que se ejecutan en el nodo de destino vacíen los nodos.
Puedes vaciar un grupo de nodos completo o un solo nodo de trabajo.
Vaciado de todo el grupo de nodos
Si usas eksctl para iniciar tus nodos de trabajo, ejecuta el siguiente comando:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName
Nota: Sustituye clusterName por el nombre de tu clúster y nodegroupName por el nombre de tu grupo de nodos.
Para desacordonar un grupo de nodos vaciado, ejecuta el siguiente comando:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName --undo
Nota: Sustituye clusterName por el nombre de tu clúster y nodegroupName por el nombre de tu grupo de nodos.
Si no has usado eksctl para iniciar tus nodos de trabajo, ejecuta el siguiente script para vaciar todos los nodos de una versión específica de Kubernetes:
#!/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
Nota: Sustituye 1.18.8-eks-7c9bda por tu versión de Kubernetes.
Para desacordonar los nodos vaciados, ejecuta el siguiente script:
#!/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
Nota: Sustituye 1.18.8-eks-7c9bda por tu versión de Kubernetes.
Para obtener el número de versión del nodo de trabajo, ejecuta el siguiente comando:
kubectl get nodesNAME
Nota: Sustituye nodesNAME por el nombre de tu nodo.
Resultado de ejemplo:
$ kubectl get nodesNAME STATUS ROLES AGE VERSION ip-ABC-ACB-DE-ABC.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda ip-ABC-ABC-DE-ABC.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda
El número de versión aparece en la columna VERSION.
Vaciado de un único nodo de trabajo
Si no usas eksctl para iniciar tus nodos de trabajo o vaciar un nodo concreto, aísla debidamente tu nodo de trabajo. Ejecuta el siguiente comando:
kubectl drain node_name --ignore-daemonsets
Nota: Sustituye node_name por el nombre de tu nodo.
Para deshacer el aislamiento, ejecuta el siguiente comando:
kubectl uncordon node_name
Nota: Sustituye node_name por el nombre de tu nodo.
También puedes migrar las aplicaciones existentes a un nuevo grupo de nodos de trabajo.
Eliminación de los nodos de trabajo
Importante: No puedes deshacer una acción de eliminación.
Si usas eksctl, ejecuta el siguiente comando:
eksctl delete nodegroup --cluster=clusterName --name=nodegroupName
Nota: Sustituye clusterName por el nombre de tu clúster y nodegroupName por el nombre de tu grupo de nodos.
Si tienes un grupo de nodos administrado, consulta Eliminación de un grupo de nodos administrado de tu clúster.
Si tienes un grupo de nodos no administrado y has usado una plantilla de CloudFormation para iniciar los nodos de trabajo, elimina la pila del grupo de nodos.
Si tienes un grupo de nodos no administrado, pero no has usado una plantilla de CloudFormation, elimina el grupo de escalamiento automático de Amazon Elastic Compute Cloud (Amazon EC2). Si no has usado un grupo de Amazon EC2 Auto Scaling, termina la instancia.
- Temas
- Containers
- Etiquetas
- Amazon Elastic Kubernetes Service
- Idioma
- Español

Contenido relevante
preguntada hace un año
preguntada hace 2 años
preguntada hace un año
preguntada hace 2 años
OFICIAL DE AWSActualizada hace 3 años