What is Node Allocatable in Kubernetes?

Node Allocatable

Node Allocatable is the amount of computing resources on a Kubernetes node available for workloads after reserving the necessary resources for the operating system, Kubernetes components, and other system-level daemons. It includes CPU, memory, and ephemeral storage that can be allocated to pods.

How Does It Work?

Node Allocatable functions by reserving a portion of a node’s resources specifically for system processes and Kubernetes components. This reservation is configured using parameters like kube-reserved for Kubernetes system daemons, system-reserved for non-Kubernetes processes, and eviction-thresholds to handle critical scenarios. By setting aside these resources, Node Allocatable ensures that the remaining capacity is accurately reported to the Kubernetes scheduler, allowing it to place workloads without overloading the node. This mechanism prevents resource contention and promotes stable cluster operations.

When Is It Used?

Node Allocatable is used in scenarios where resource management and stability are crucial. Common use cases include:

Key Features:

  1. Resource Reservation: Kubernetes reserves resources for system processes using configurations like kube-reserved, system-reserved, and eviction-thresholds.
  2. Dynamic Adjustments: Administrators can fine-tune Node Allocatable configurations based on workload requirements and node usage patterns.
  3. Integration with Scheduler: The Kubernetes scheduler respects Node Allocatable when placing pods, ensuring that workloads fit within available resources.

Types of Resource Reservations:

  1. Kube-Reserved: Resources set aside for Kubernetes system daemons like the kubelet, container runtime, and kube-proxy.
  2. System-Reserved: Resources allocated for non-Kubernetes system processes, such as the OS kernel, logging agents, or monitoring tools.
  3. Eviction Thresholds: Defines when Kubernetes can evict pods to prevent resource starvation for critical processes.

Challenges:

References

  1. Kubernetes Documentation on Node Allocatable