Skip to content
STIRUP

TECHNOLOGY INTELLIGENCE

Understand what's next.

Kubernetes v1.37: Pod-Level Resource Managers graduated to Beta

With the release of Kubernetes v1.37, the Pod-Level Resource Managers feature has graduated to Beta status (disabled by default). This enhancement allows Kubelet's Topology Manager, CPU Manager, and Memory Manager to use Pod-level resource declarations directly when making hardware placement decisio

Share
Kubernetes v1.37: Pod-Level Resource Managers graduated to Beta

Pod-Level Resource Managers in Kubernetes v1.37

Kubernetes v1.37 introduces the Pod-Level Resource Managers feature in Beta status, marking a significant step forward in resource management for containerized workloads. This feature, previously available as an Alpha in v1.36, enables Kubelet's Topology Manager, CPU Manager, and Memory Manager to utilize Pod-level resource declarations (.spec.resources) directly when making hardware placement decisions. This change addresses long-standing limitations in how resources are allocated to containers within a Pod.

Addressing Allocation Challenges

Before this feature, cluster operators faced a binary choice when allocating resources for latency-critical applications: either assign integer resource requests to every container in the Pod or forgo exclusive NUMA alignment entirely. This approach was inefficient for modern workloads that include lightweight sidecars, such as logging agents or telemetry exporters. Allocating dedicated physical cores to auxiliary containers was often wasteful, as these sidecars typically require minimal resources.

The Pod-Level Resource Managers feature introduces hybrid allocation models that allow the Kubelet to reserve exclusive NUMA-aligned resources for primary application containers while placing non-Guaranteed sidecars into a pod-isolated shared pool. This ensures that primary workloads receive unthrottled, NUMA-local performance, while sidecars benefit from running in a shared pool that provides local NUMA alignment and protection from external node interference without consuming dedicated physical cores.

Key Enhancements in Beta

Graduating to Beta brings several operational and API enhancements. The feature is controlled by the PodLevelResourceManagers feature gate and is available to opt in (disabled by default) in Kubernetes v1.37. Additionally, the v1 PodResources gRPC service (PodResourcesLister) introduces top-level cpu_ids and memory fields on PodResources responses. This allows monitoring tools and device plugins to query pod-level exclusive assignments directly without double-counting container allocations.

Getting Started and Providing Feedback

For a detailed technical overview and configuration instructions, users are encouraged to consult the official documentation on Pod-level resource managers. A step-by-step tutorial on configuring and deploying workloads using this feature is also available. As the feature progresses toward General Availability (GA), user feedback is crucial. Issues or experiences can be reported through standard Kubernetes communication channels, including Slack, mailing lists, and community issues/PRs.

Source: Kubernetes. Analysis based on publicly available information; no hands-on testing is claimed.

Read more