Quick Answer
Kubernetes v1.37 marks a major milestone in cluster resource management with the graduation of Pod-Level Resource Managers to Beta status. Building upon the foundational Pod-Level Resources introduced in v1.36, this release equips platform engineers with advanced mechanisms to manage resource allocations at the pod boundary rather than strictly isolating them within individual containers. Because this is a Beta feature, it remains disabled by default, requiring explicit cluster-level opt-in via feature gates.
Introduction to Kubernetes v1.37 and Pod-Level Resource Managers
Traditional container orchestration engines evaluate resource requests and limits strictly on a per-container basis. While this model works effectively for simple microservice architectures, it introduces friction when handling complex workloads like sidecar containers, shared-memory processing, and specialized hardware accelerators. The introduction of Pod-Level Resources in v1.36 established the conceptual framework for grouping resources at the pod level. Now, in Kubernetes v1.37, Pod-Level Resource Managers take this a step further by introducing intelligent control loops and runtime policies that govern these pools dynamically.
[!NOTE] Architectural Note: Pod-Level Resource Managers do not replace container limits entirely; instead, they provide a higher-level accounting layer that lets containers flexibly borrow or share pooled resources within the same pod boundary.
Understanding this shift is essential for platform engineers who manage high-density multi-tenant environments. By moving away from rigid container boundaries, clusters can achieve higher utilization rates without sacrificing performance predictability.
How Pod-Level Resource Managers Work Under the Hood

To appreciate the impact of Pod-Level Resource Managers, we must examine the underlying mechanics of how the kubelet allocates CPU, memory, and specialized hardware. In a traditional setup, the Linux kernel cgroups v2 hierarchy isolates each container into its own control group. Under the new pod-level architecture, a parent cgroup is established for the entire pod, housing child cgroups for individual containers underneath it.
This architecture enables dynamic resource rebalancing. If Container A experiences a sudden traffic spike and requires additional CPU cycles while Container B is idle, the pod-level manager can dynamically shift quota within the parent cgroup without violating the overall pod-level limit enforced by the node.
✓ Advantages
- Eliminates rigid container resource starvation
- Optimizes node-level utilization for sidecar patterns
- Simplifies resource sizing for complex multi-container pods
✕ Limitations
- Disabled by default in v1.37
- Requires cgroups v2 fully enabled on host nodes
- Increased complexity in debugging resource contention
Enabling, Configuring, and Managing the Beta Feature
Because Pod-Level Resource Managers are disabled by default in Kubernetes v1.37, administrators must explicitly activate the feature gate across the control plane and worker nodes. This safety measure ensures that existing production clusters are not unexpectedly subjected to altered cgroup hierarchies during an upgrade.
To enable the feature, you must configure the kube-apiserver and kubelet configuration files by adding the appropriate feature gate flag:
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
featureGates:
PodLevelResourceManagers: true
[!WARNING] Warning: Enabling PodLevelResourceManagers requires your underlying Linux nodes to run kernel versions supporting advanced cgroups v2 controllers. Ensure your node operating systems are thoroughly tested before rolling this out to production clusters.
Once the feature gate is active, you can define pod-level resource policies within your workload manifests. Monitor your cluster telemetry closely using Prometheus metrics to verify that the pod-level cgroup allocations are behaving as expected under load.



