A New Release Cadence for Containerd
Containerd is moving to three releases per year, aligned with Kubernetes. One release per year will be LTS. Version 2.3 is the next LTS, replacing 1.7. The 1.7 LTS, maintained by Samuel Karp and Chris Hines from Google, runs through end of September. The 2.0 branch is end-of-life. Both 2.1 and 2.2 remain active. On non-LTS branches, backports and cherry-picks are limited and new features do not land there. The goal is keeping containerd’s cycle in sync with Kubernetes so CRI API changes land in the same window.
What’s New in Containerd 2.3
Two features land as standard in 2.3. GPU vendor auto-detection lets operators query which GPU the hardware reports. EROFS image layers replace the TAR-per-blob format: instead of each layer being a tar archive, you push an EROFS filesystem image directly. Runtime extension points cover FreeBSD, Windows via runhcs, and runc, crun, and runj, with shim API support for any custom runtime. Notefs is now a first-class supported filesystem. Remote snapshotters include block overlay and Soci.
How NRI Intercepts the Container Lifecycle
NRI (Node Resource Interface) is a shared extension mechanism for CRI-compatible runtimes. Both containerd (since 1.7) and CRI-O (since 1.26) support it. When a pod is assigned to a node, the kubelet uses CRI to create containers. The runtime builds an OCI spec from the request. NRI intercepts that spec before it reaches the low-level runtime (runc, crun, kata), calls every registered plugin, collects attribute adjustments, checks for conflicts, and applies the merged changes. Plugins run as external binaries communicating over TTRPC on Unix domain sockets.
New NRI Controls and Pluggable Validation
Recent additions expand what plugins can control: Linux scheduling parameters, IO prioritization, namespace configuration, seccomp policy, POSIX rlimits, CDI-based device injection, and network interface injection (moving a host interface into a container at creation time). A pluggable validation layer lets administrators install validator plugins that accept or reject OCI spec changes from other plugins. The built-in default validator locks down security-sensitive operations: OCI hook injection, seccomp mutations, namespace mutations, and sysctl adjustments. Administrators can also declare required plugins; missing ones block container creation entirely.
NRI 1.0: Stability, Metrics, and Authenticated Plugins
NRI is targeting a 1.0 API-stable release. After that, compiled external plugins will work across new runtime versions without recompilation, and source-level changes will not be required. Alongside 1.0, the team is adding plugin metrics (plugin count, per-plugin latency, request success and failure counts) and audit logging (which plugins touched which container attributes and what changes they requested). Authenticated plugins add identity-based access: unauthenticated plugins are locked down by default, while reviewed plugins can be granted broader permissions via role assignment in the validator.
Q&A
How does NRI differ from a mutating webhook for applying cluster-wide policy? Webhooks see one container at a time with no callback when containers stop; NRI plugins operate at the OCI spec level, can update sibling containers at any lifecycle event, and expose far more knobs than the CRI surface webhooks see. ▶ 28:52
If DRA controllers mutate resources, how do NRI plugins avoid conflicting with those changes? Validator restrictors lock down DRA-managed fields, and the team is coordinating with the kubelet team to mark those fields off-limits for plugin adjustment via annotations. ▶ 32:05
Notable Quotes
cadence. We’re going to ship three a year Michael Brown · ▶ 5:55
So, we decided, you know, we need an interface that teams like Intel, Nvidia, whatever, can can come in and extend Michael Brown · ▶ 30:41
you can’t do everything at a web hook Michael Brown · ▶ 30:55
Key Takeaways
- Containerd adopts a Kubernetes-aligned three-releases-per-year cadence; 2.3 becomes the next LTS.
- NRI intercepts the OCI spec before the low-level runtime and applies plugin adjustments without requiring recompilation.
- Pluggable validation lets administrators lock down security-sensitive OCI spec fields and declare required plugins.
- Authenticated plugins give the validator a reliable identity per plugin, enabling role-based permission configuration.
- NRI 1.0 will guarantee binary and source backward compatibility for external plugins across runtime releases.
About the Speaker(s)
Michael Brown is a maintainer of containerd at IBM, contributing to the OCI, CNCF, PyTorch, and Kubernetes projects.
Krisztian Litkey is a Cloud Orchestration Software Engineer at Intel with over 20 years of experience writing embedded software and middleware. His background spans telcos, mobile infrastructure suppliers, and handset manufacturers, with previous projects including Maemo, MeeGo, Tizen, and Yocto.