What are Kubernetes nodes?

A Kubernetes node is a single working node in a Kubernetes cluster that consists of infrastructure components on which container workloads (pods) run. Nodes provide the necessary resources such as computing power and memory.

Definition of a Kubernetes node

Nodes are essential building blocks in a Kubernetes cluster. Each node represents a physical or virtual machine and provides resources such as CPU, memory and storage space. These nodes work together to host and manage the container workloads. They perform tasks such as starting, monitoring and scaling containers to ensure applications run smoothly.

Kubernetes nodes are flexibly scalable as they can be added or removed as required. They support efficient resource utilization and adapt dynamically to the requirements of running applications. In addition, the distribution of nodes across different servers promotes the resilience of the cluster. Smart coordination via Kubernetes ReplicaSets and Kubernetes DaemonSets allows container applications to be managed securely and easily.

Diagram of a cluster with Kubernetes nodes
Diagram of a Kubernetes cluster

Node status

The node status provides information about the status of a working node in the Kubernetes cluster. It shows whether the node is functioning properly and is able to host pods.

  • Addresses: The addresses of a node provide insight into its accessibility in the network. This includes IP addresses, host names and ports. A node can have several addresses, and these are crucial for communication within the cluster.
  • Conditions: The conditions reflect the current health status of the Kubernetes node. Typical conditions include Ready, OutOfDisk (lack of space), MemoryPressure and DiskPressure (hard disc pressure). These messages indicate whether nodes are operational or whether there are certain resource shortages.
  • Capacity: The capacity of a node refers to the available resources such as CPU, RAM and hard disc space. This information is important when it comes to understanding how much workload a node can handle. Kubernetes uses this data to decide where to place containers based on resource requirements.
  • Info: The information section can contain additional details about the node, for example, the operating system, the kernel or kubelet version and other metadata.
Tip

With managed Kubernetes from IONOS, you can easily orchestrate container applications in distributed production environments. Benefit from security, transparency and control during operation, all with minimal administrative effort.

Node heartbeat

Heartbeats periodically send status information to the Kubernetes master. These status updates are used to inform the master that the node is still available and ready for use.

In the context of Kubernetes, there are two forms of heartbeats for nodes:

  • Updates to the .status of a node: These are regular status updates that a node sends to the Kubernetes master. The status contains information about the availability and status of the node.
  • Lease objects in the namespace kube-node-lease: Each node is linked to a lease object in the kube-node-lease namespace. A lease object is essentially a type of lease agreement that is sent from the node to the master. This lease confirms that the node is still active and is using resources in the cluster.

Kubernetes node management

The three main components that form the node management in a Kubernetes cluster are the node controller, kubelet and the command line tool kubectl.

Node controller

The node controller is a core component of Kubernetes that is responsible for managing nodes. It monitors the heartbeats in the form of status updates and lease objects to ensure that the nodes are running smoothly. If the node controller detects that a node is no longer active and no heartbeats are being received, it can take appropriate action, such as re-scheduling pods on other available nodes. The node controller therefore plays a pivotal role in maintaining the availability and integrity of the node pool in the Kubernetes cluster.

Kubectl

kubectl is a command line tool that allows users to interact with a Kubernetes cluster. With kubectl you can send commands to the Kubernetes master to create, monitor, update and delete resources in the cluster. This tool is versatile and allows you to manage deployments, services, pods, ConfigMaps and other Kubernetes objects.

Kubelet

Kubelet is present on every Kubernetes node in the cluster and is responsible for communication between the node and the master. The main task of the kubelet is ensuring that container pods are started, monitored and terminated according to the instructions of the Kubernetes master.

In the Kubernetes tutorial, we’ll show you how to set up your own Kubernetes cluster.

IONOS Cloud Managed Kubernetes
Container workloads in expert hands

The ideal platform for demanding, highly scalable container applications. Managed Kubernetes works with many cloud-native solutions and includes 24/7 expert support.

Was this article helpful?
We use cookies on our website to provide you with the best possible user experience. By continuing to use our website or services, you agree to their use. More Information.
Page top