Skip to the content.

NRI Resource-Policy Plugins

The NRI resource-policy plugins apply hardware-aware placement to containers in Kubernetes. This page covers what they are and how to get one running. The policy pages (Balloons, Topology-aware) cover when and why to use each.

What is NRI

NRI (Node Resource Interface) is a plugin interface in the container runtime. A resource-policy plugin receives each container’s lifecycle events and decides its CPU, memory, and device affinity before it starts. This happens on the node, below the Kubernetes scheduler.

How it runs

Prerequisites

See the upstream setup guide for enabling NRI and for the full install procedure.

Install

Add the Helm repository:

helm repo add nri-plugins https://containers.github.io/nri-plugins
helm repo update

Install one policy. For Topology-aware:

helm install nri-resource-policy-topology-aware \
  nri-plugins/nri-resource-policy-topology-aware --namespace kube-system

For Balloons:

helm install nri-resource-policy-balloons \
  nri-plugins/nri-resource-policy-balloons --namespace kube-system

Check the DaemonSet is ready:

# Topology-aware
kubectl -n kube-system rollout status ds/nri-resource-policy-topology-aware
# Balloons
kubectl -n kube-system rollout status ds/nri-resource-policy-balloons

Configuration

You configure a policy with a custom resource, not Helm values, so changes apply without reinstalling. Each policy has its own kind (BalloonsPolicy, TopologyAwarePolicy). Configuration works at three scopes, most specific wins:

This lets one cluster serve mixed hardware and mixed workloads. See the upstream configuration guide.

Scope of these pages

This section orients you and points to the details. For install options, the full configuration schema, and cookbooks, the upstream NRI plugins documentation is the source of truth.