Pasos para eliminar de forma segura un nodo trabajador de un clúster Kubernetes
13:13, 04.08.2026
La gestión de un clúster de Kubernetes conlleva numerosas tareas y, sin duda, la más importante es el mantenimiento adecuado de los nodos. En algunos casos, puede ser necesario eliminar un nodo de trabajo del clúster sin que ello afecte a las aplicaciones activas. Gracias a nuestro conocimiento de todos los aspectos prácticos de este proceso, estaremos encantados de guiarte a través de los pasos necesarios para una eliminación segura.
Comprender los clústeres de Kubernetes
Si explicamos el clúster de Kubernetes en términos sencillos, este término hace referencia a varios nodos (sistemas operativos u ordenadores) que funcionan conjuntamente y se comunican con el software de Kubernetes.
Definición de los nodos en un clúster de Kubernetes
Como ya habrás comprendido, el clúster incluye un grupo de nodos y cada uno de ellos es un elemento importante en su diseño. El clúster puede compararse con un equipo de empleados, en el que cada empleado es un nodo. Cada nodo es fundamental para tareas específicas y cuenta con su propio almacenamiento, memoria y CPU. Para que las aplicaciones y los servicios funcionen sin problemas, todos los nodos deben funcionar correctamente. Los nodos se encargan de gestionar todo lo relacionado con el clúster, en concreto la gestión del almacenamiento, la ejecución de tareas y la gestión de la red. Kubernetes ofrece acceso a soluciones más tolerantes a fallos, escalables y resilientes.
Pasos para retirar o eliminar de forma controlada un nodo de un clúster de Kubernetes
Paso 1: Empieza por enumerar todos los nodos disponibles:
kubectl get nodesPaso 2: Un paso fundamental antes de la eliminación total es el drenaje, para que los pods existentes se reprogramen en otro nodo. Se debe utilizar el siguiente comando:
kubectl drain <nombre-del-nodo>Paso 3: Ahora ya puedes eliminarlo:
kubectl delete node <nombre-del-nodo>Si el proceso se ha completado con éxito, verás que este nodo se ha eliminado y se mostrará información adicional sobre su nombre, estado y mucho más.
Eliminación forzada de un nodo de un clúster de Kubernetes
Un breve recordatorio para todos aquellos que realmente quieran eliminar un nodo del clúster de forma forzada: esta no es la mejor opción y supone una decisión muy drástica para la mayoría de los casos de uso. La eliminación forzada afectará sin duda a todo el clúster, así que intenta evitar este proceso siempre que sea posible.
Estos son los pasos principales necesarios para la eliminación forzada del nodo:
Paso 1: Empieza por enumerar todos los nodos disponibles dentro de un clúster específico:
kubectl get nodesPaso 2: Para iniciar el proceso de eliminación, debes asegurarte de que no se vayan a programar nuevos pods en este nodo. Para ello, debe utilizar el siguiente comando:
kubectl cordon <nombre-del-nodo>Paso 3: Para garantizar que la carga de trabajo actual no se vea afectada, también debes eliminar todos los pods que se encuentran en este nodo específico. Esto se puede hacer con el siguiente comando:
kubectl drain <nombre-del-nodo> --force --ignore-daemonsetsAl añadir «force», se garantiza que los pods se eliminarán de forma forzada.
Paso 4: Ahora puedes eliminar el nodo con el comando:
kubectl delete node <nombre-del-nodo>
Preguntas frecuentes sobre la eliminación ordenada de nodos en Kubernetes
¿Cómo puedo apagar un nodo en Kubernetes?
Antes de eliminar el nodo, debes tener en cuenta que este paso afectará a todo el clúster, por lo que no debe realizarse de forma precipitada. Es muy importante iniciar el proceso de vaciado del nodo específico. Esto significa que no se programarán nuevos pods y que los actuales se eliminarán. De este modo, te asegurarás de que la carga de trabajo no se vea afectada negativamente.
¿Cómo se excluyen nodos específicos en Kubernetes?
Existen dos opciones posibles para excluir nodos en Kubernetes:
- Afinidad y selectores de nodos. El selector de nodos se considera la forma más sencilla de programar pods en determinados nodos. Esta variante es excelente, pero se podría argumentar que ofrece menos flexibilidad cuando se trata de una programación compleja. La afinidad cuenta con más reglas de programación que incluyen tanto restricciones obligatorias como preferentes.
- Taints y toleraciones. Este mecanismo garantiza que los pods no se ejecuten en nodos inadecuados. Las toleraciones se especifican en la especificación de los pods, mientras que las marcas se definen en los nodos. Un nodo concreto puede tener una o varias marcas.