Kubernetes has deprecated cgroup v1, and starting with Kubernetes v1.35 the kubelet refuses to start on cgroup v1 nodes by default. That makes v1 effectively dead for normal operations—but upstream support has not yet been fully removed. A temporary failCgroupV1: false override remains in the documented releases; Kubernetes documentation says its removal is planned for v1.38, while the precise code-removal point is not settled. Treat the override as a short-lived bridge and plan a move to cgroup v2.
What changed, and what “dead” means
Kubernetes has supported cgroup v2 as stable since v1.25. Cgroup v1 entered maintenance mode in v1.31 and was deprecated in v1.35. From v1.35, kubelet defaults failCgroupV1 to true, so it will not start on a cgroup v1 node unless that behavior is overridden. The Kubernetes cgroup documentation describes the transition and the failCgroupV1 setting.
As an Amazon Associate I earn from qualifying purchases.
The distinction matters for upgrade planning: deprecated and rejected by default is not the same as already removed from the code. Kubernetes’ cgroup v2 documentation says the fallback is planned for removal in v1.38. The KEP-5573 proposal makes full removal conditional on all supported Kubernetes releases having FailCgroupV1 enabled, and does not settle an exact removal point. Treat v1.38 as the documented plan, not a completed removal.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
The timeline is version-specific: the v1.35 announcement described the deprecation and default failure, while the v1.37 announcement said the temporary override remained. A later Kubernetes migration article published October 6, 2026 says removal is scheduled for v1.38. Verify release notes and the live documentation when scheduling a cluster upgrade.
#1 Best Overall
Check whether your nodes use cgroup v1 or v2
Run this on each Linux control-plane and worker node that is part of the migration:
stat -fc %T /sys/fs/cgroup/
cgroup2fs indicates cgroup v2; tmpfs indicates cgroup v1. Do not infer a node’s hierarchy from the Kubernetes version or from another node in the same cluster: record the result per node.
Migration checklist
1. Inventory nodes and their operating systems
For every relevant Linux node, record its cgroup result, distribution and release, kernel version, container runtime and version, and effective kubelet and runtime cgroup drivers. Confirm that the distribution supports and enables cgroup v2; default behavior can vary by image and release. Kubernetes lists Ubuntu 21.10 (with 22.04 or later recommended), Debian 11, Fedora 31, RHEL-like 9, and Container Optimized OS M97 as examples with cgroup v2 support. These are examples in Kubernetes documentation, not a complete or current support guarantee. Check the lifecycle and configuration guidance for your specific distribution.
Recommended Free Tools
2. Verify kernel support
Kubernetes documentation lists Linux kernel 5.8 or later for cgroup v2. If you use Memory QoS, the migration guidance recommends kernel 5.9 or later. Confirm the kernel actually running on each node rather than relying only on the node-image name.
Rank #3
3. Check runtime versions and driver alignment
Kubernetes lists containerd v1.4 or later and CRI-O v1.20 or later for basic cgroup v2 support. For automatic cgroup-driver discovery through the runtime’s RuntimeConfig, the migration article gives containerd v2.0 or later and CRI-O v1.28 or later as examples. These are distinct thresholds: basic cgroup v2 support does not itself establish automatic driver discovery.
The kubelet and runtime must use compatible cgroup drivers. For kubeadm clusters, Kubernetes recommends the systemd driver because kubeadm manages kubelet as a systemd service. Confirm the effective configuration on your nodes; do not assume that the runtime or kubelet selected the intended driver automatically.
4. Test workloads and node software that read cgroups
Most users should not notice a change unless software reads cgroup files directly, on the host or inside a container. Cgroup v2 uses a different API, so test applications, monitoring and security agents, and other node components that inspect /sys/fs/cgroup.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchMemory-limit detection deserves particular attention. Software that reads host memory instead of a pod’s limit can size a heap too generously and risk an out-of-memory termination. Kubernetes documents these compatibility pointers:
Best Value
- Use standalone cAdvisor v0.43.0 or later for cgroup v2 compatibility.
- Use
automaxprocsv1.5.1 or later. - For Node.js cgroup v2 memory-limit detection, use Node.js 20.3.0 or later. Node.js v18 does not reliably detect these limits; if an affected deployment must remain on that version, the documentation suggests setting the heap limit explicitly with
--max-old-space-size. - Check that your Java runtime version supports cgroup v2 and correctly detects container limits; confirm compatibility for the specific runtime and application in use.
5. Upgrade in stages using your platform’s procedure
Plan the change around your distribution, node images, runtime and cluster provider. Test representative workloads and agents before replacing or upgrading production nodes. Kubernetes’ general guidance does not define one sequence for every managed service, node pool or Linux distribution, so follow the provider’s and distribution’s procedures for rolling out cgroup v2. Keep failCgroupV1: false only as a short-term exception if migration cannot happen immediately.
What changes—and what does not
Cgroup v2 replaces the separate cgroup v1 hierarchies with a unified hierarchy and different interfaces. Kubernetes identifies Memory QoS as a feature that uses cgroup v2 capabilities. The Kubernetes v1.37 release announcement also says advanced resource-management features including Memory QoS and in-place scaling for memory-backed volumes work only on cgroup v2.
Moving a node to cgroup v2 does not, by itself, enable every such feature. Kubernetes version, feature gates and workload configuration still apply. Conversely, applications that do not inspect cgroup files directly may need no changes, but test rather than assume: memory accounting and behavior can expose compatibility problems in software that reads limits or resource data.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsKeep the containerd upgrade question separate
Kubernetes v1.35 is the final release supporting containerd 1.X, according to its release announcement. That makes runtime lifecycle planning relevant to many clusters, but it is a separate compatibility concern from switching cgroup versions. The cgroup guidance’s containerd v1.4+ threshold describes basic cgroup v2 support; it does not override the Kubernetes release’s containerd support policy. Plan both changes where applicable, and use the runtime and Kubernetes release documentation that matches your versions.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




