Skip to the content.

Choosing a Policy, Including the Built-in Kubernetes Managers

Kubernetes ships its own CPU manager, Memory manager, Device manager, and Topology manager. They pin CPUs and memory and try to keep a pod’s resources on one NUMA node. If you already use them, this page shows where the NRI policies fit and what they add.

For the choice between the two NRI policies alone, see choosing a policy.

Three options

Topology-aware vs. the built-in managers

Topology-aware is close to a drop-in replacement for the built-in CPU and Memory managers. The intent is the same: place a workload’s CPU and memory together on aligned hardware. The differences are in the allocation:

If your goal is aligned placement and you find the built-in managers limiting on larger systems, Topology-aware is the natural step up.

Balloons vs. the built-in managers

The balloons policy has different semantics. Instead of per-pod pinning rules, you partition the node into CPU pools, pre-allocated and dynamically created, and assign containers and pods to them:

Choose Balloons when you need that grouping flexibility or the extra tuning.

Which to use

Situation Use
Aligned CPU/memory, small NUMA count, happy with built-ins Built-in managers
Aligned CPU/memory, larger NUMA count, smarter allocation, more controls, Guaranteed tuning Topology-aware
Aligned CPU/memory, CPU pools, container/pod grouping, tuning all QoS classes Balloons

The NRI policies are alternatives to the built-in managers for these tasks, not additions on top. Run one approach per node.