Kubernetes nodes
Un nodo de Kubernetes es un único nodo de trabajo en un clúster Kubernetes que consta de componentes de infraestructura en los que se ejecutan cargas de trabajo de contenedores (pods). Los nodos proporcionan recursos necesarios, como potencia de cálculo y memoria.
¿Qué es un Kubernetes node?
Los nodos son bloques de construcción esenciales en un clúster de Kubernetes. Cada nodo representa una máquina física o virtual y proporciona recursos como CPU, memoria y espacio de almacenamiento. Estos nodos trabajan juntos para alojar y gestionar las cargas de trabajo de los contenedores. Realizan tareas como iniciar, supervisar y escalar contenedores para garantizar que las aplicaciones se ejecuten sin problemas.
Los nodos de Kubernetes son escalables de forma flexible, ya que pueden añadirse o eliminarse en función de las necesidades. Permiten una utilización eficiente de los recursos y se adaptan dinámicamente a los requisitos de las aplicaciones en ejecución. Además, la distribución de nodos entre diferentes servidores fomenta la resiliencia del clúster. La coordinación inteligente a través de Kubernetes ReplicaSets y Kubernetes DaemonSets permite gestionar las aplicaciones de contenedores de forma segura y sencilla.
Node Status
El Node Status proporciona información sobre el estado de un nodo de trabajo en el clúster Kubernetes. Muestra si el nodo funciona correctamente y puede alojar pods.
- Addresses: las direcciones de un nodo proporcionan información sobre su accesibilidad en la red. Esto incluye direcciones IP, nombres de host y puertos. Un nodo puede tener varias direcciones, y éstas son cruciales para la comunicación dentro del clúster.
- Conditions: las condiciones reflejan el estado de salud actual del nodo. Las condiciones típicas incluyen Ready (listo), OutOfDisk (sin espacio), MemoryPressure (presión de la memoria) y DiskPressure (presión del disco duro). Estos mensajes indican si los nodos están operativos o si se están produciendo ciertas carencias de recursos.
- Capacity: la capacidad de un nodo se refiere a los recursos disponibles como CPU, memoria y espacio en disco duro. Esta información es importante para comprender cuánta carga de trabajo puede soportar un nodo. Kubernetes utiliza estos datos para decidir dónde colocar los contenedores en función de las necesidades de recursos.
- Info: la sección de información puede contener detalles adicionales sobre el nodo, por ejemplo, el sistema operativo, la versión del kernel o kubelet y otros metadatos.
La orquestación de clústeres con Kubernetes también es fácil de realizar con IONOS gracias a la Cloud Empresarial, con la cual obtendrás la última tecnología de infraestructura como servicio (IaaS) y soluciones adaptadas a tu Proyecto individual.
Node Heartbeat
Los heartbeats envían periódicamente información de estado al master de Kubernetes. Estas actualizaciones de estado sirven para informar al master que el nodo aún está disponible y listo para ser utilizado.
En Kubernetes, existen dos formas de heartbeats para los nodos:
- Actualizaciones del
.status
de un nodo: son actualizaciones de estado periódicas que un nodo envía al master de Kubernetes. El estado contiene información sobre la disponibilidad y el estado del nodo. - Objetos lease en el espacio de nombres
kube-node-lease
: cada nodo está asociado con un objeto lease en el espacio de nombreskube-node-lease
. Un objeto lease es básicamente un tipo de acuerdo de alquiler que el nodo envía al master. A través de este lease, se confirma que el nodo sigue activo y está reclamando recursos en el clúster.
Gestión de nodos de Kubernetes
Los tres componentes principales que juntos forman la gestión de nodos en un clúster Kubernetes son el node controller, Kubelet y la herramienta de línea de comandos kubectl
.
Node controller
El node controller es un componente central de Kubernetes responsable de la gestión de los nodos. Supervisa los heartbeats en forma de actualizaciones de estado y objetos lease para asegurarse de que los nodos funcionen sin problemas. Si el node controller detecta que un nodo ya no está activo y no se reciben heartbeats, puede tomar las medidas adecuadas, como reprogramar pods en otros nodos disponibles. De este modo, el node controller desempeña un papel fundamental en el mantenimiento de la disponibilidad e integridad del conjunto de nodos en el clúster de Kubernetes.
Kubectl
kubectl
es una herramienta de línea de comandos que permite a los usuarios interactuar con un clúster de Kubernetes. Con kubectl
, puedes enviar comandos al master de Kubernetes para crear, supervisar, actualizar y eliminar recursos en el clúster. La herramienta es versátil y permite la gestión de deployments, services, pods, configMaps y otros objetos de Kubernetes.
Kubelet
Kubelet está presente en cada nodo de Kubernetes en el clúster y es responsable de la comunicación entre el nodo y el master. La principal tarea de Kubelet es asegurarse de que los container pods se inicien, supervisen y terminen según las instrucciones del master de Kubernetes.
En el tutorial de Kubernetes te mostramos cómo configurar tu propio clúster de Kubernetes.