containerd 2.2.0
Welcome to the v2.2.0 release of containerd!
The second minor release of containerd 2.x focuses on continued stability alongside new features and improvements. This is the second time-based released for containerd.
Highlights
-
Add mount manager (#12063)
The mount manager is a new service that provides lifecycle management for filesystem mounts to support more advanced use cases, such as:
- Device formatting to create formatted filesystems (xfs, ext4) on-demand
- Mount activation to prepare devices such as loopbacks or network fileystems
- Mount transformation to allow mount arguments to be filled in dynamically from previous mounts
- Garbage collection of mounts to ensure temporary mounts are never leaked
-
Add conf.d include in the default config (#12323)
-
Add support for back references in the garbage collector (#12025)
Container Runtime Interface (CRI)
-
Pod Sandbox Metrics (#10691)
Full implementation of Kubernetes CRI pod-level metrics API
- ListPodSandboxMetrics: Query metrics for running pods/sandboxes
- ListMetricsDescriptors: Discover available metrics and their descriptions
-
Support image volume mount subpath (#11578)
Go client
- Update pkg/oci to use fs.FS interface and os.OpenRoot (#12245)
Image Distribution
-
Parallel Unpack (#12332)
Adds support for unpacking layers in parallel during pull operations. This feature is supported with overlayfs and EROFS snapshotters.
-
OCI Referrers Support (#12309)
Adds new referrers fetcher to remote registry interface using the new referrers endpoint added in OCI distribution-spec 1.1
-
Tar unpack progress through transfer service (#11921)
Image Storage
-
EROFS enhancements using mount manager (#12333)
Improvements to EROFS snapshotter using the new mount manager service
- Quota Support: Support for sized block devices as the upper layer for overlayfs
- Mount Lifecycle: Loopback setup, block device creation, and overlayfs argument formatting is moved to the mount manager to be performed on-demand or within the runtime.
- Mount handler: To allow optimization of EROFS mount types based on the current system
- macOS Support: EROFS snapshotter can now be used on Darwin to natively allow image pulls
- Tar index mode: Efficiently generate EROFS metadata backed by original tar content (#11919)
-
Add snapshotter and differ for block CIMs (#12050)
Node Resource Interface (NRI)
- Enable otel traces in NRI (#12082)
- Add WASM plugin support (containerd/nri#121)
Runtime
- Improve shim load time after restart by loading in parallel (#12142)
- Fix pidfd leak in UnshareAfterEnterUserns (#12167)
Deprecations
Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues.
Contributors
- Derek McGowan
- Phil Estes
- Akihiro Suda
- Maksym Pavlenko
- Wei Fu
- Krisztian Litkey
- Mike Brown
- Akhil Mohan
- Markus Lehtonen
- Samuel Karp
- Sebastiaan van Stijn
- ningmingxiao
- Austin Vazquez
- yashsingh74
- Gao Xiang
- Kirtana Ashok
- Jin Dong
- Chris Henzie
- Aadhar Agarwal
- Etienne Champetier
- Henry Wang
- Rodrigo Campos
- Sascha Grunert
- Aleksa Sarai
- Eric Mountain
- Keith Mattix II
- Paweł Gronowski
- Tõnis Tiigi
- Adrien Delorme
- Apurv Barve
- Enji Cooper
- Kohei Tokunaga
- Max Jonas Werner
- Rehan Khan
- Yang Yang
- jinda.ljd
- jokemanfire
- Amit Barve
- Andrew Halaney
- Antonio Ojea
- Brian Goff
- Carlos Eduardo Arango Gutierrez
- Chenyang Yan
- Dawei Wei
- Divya Rani
- Evan Anderson
- Fabiano Fidêncio
- Iceber Gu
- Jared Ledvina
- Jonathan Perkin
- Jose Fernandez
- Karl Baumgartner
- Michael Weibel
- Osama Abdelkader
- Radostin Stoyanov
- Ruidong Cao
- Sameer
- Sergey Kanzhelev
- Swagat Bora
- Sylvain MOUQUET
- Tom Wieczorek
- Tycho Andersen
- Wuyue (Tony) Sun
- suranmiao
- tanhuaan
- wheat2018
- zounengren
Dependency Changes
- dario.cat/mergo v1.0.1 -> v1.0.2
- github.com/Microsoft/hcsshim v0.13.0-rc.3 -> v0.14.0-rc.1
- github.com/StackExchange/wmi cbe66965904d new
- github.com/checkpoint-restore/checkpointctl v1.3.0 -> v1.4.0
- github.com/containerd/cgroups/v3 v3.0.5 -> v3.1.0
- github.com/containerd/console v1.0.4 -> v1.0.5
- github.com/containerd/containerd/api v1.9.0 -> v1.10.0
- github.com/containerd/go-cni v1.1.12 -> v1.1.13
- github.com/containerd/nri v0.8.0 -> v0.10.0
- github.com/containerd/platforms v1.0.0-rc.1 -> v1.0.0-rc.2
- github.com/containernetworking/plugins v1.7.1 -> v1.8.0
- github.com/coreos/go-systemd/v22 v22.5.0 -> v22.6.0
- github.com/cpuguy83/go-md2man/v2 v2.0.5 -> v2.0.7
- github.com/emicklei/go-restful/v3 v3.11.0 -> v3.13.0
- github.com/fxamacker/cbor/v2 v2.7.0 -> v2.9.0
- github.com/go-jose/go-jose/v4 v4.0.5 -> v4.1.2
- github.com/go-logr/logr v1.4.2 -> v1.4.3
- github.com/go-ole/go-ole v1.2.6 new
- github.com/golang/groupcache 41bb18bfe9da -> 2c02b8208cf8
- github.com/google/certtostore v1.0.6 new
- github.com/google/deck 105ad94aa8ae new
- github.com/gorilla/websocket v1.5.0 -> e064f32e3674
- v1.0.1 -> v1.1.0
Previous release can be found at v2.1.0
Which file should I download?
containerd-<VERSION>-<OS>-<ARCH>.tar.gz: ✅Recommended. Dynamically linked with glibc 2.35 (Ubuntu 22.04).containerd-static-<VERSION>-<OS>-<ARCH>.tar.gz: Statically linked. Expected to be used on Linux distributions that do not use glibc >= 2.35. Not position-independent.
In addition to containerd, typically you will have to install runc and CNI plugins from their official sites too.
See also the Getting Started documentation.