Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk4 min

Kubernetes on cgroup v1 Is Dead: How to Migrate to cgroup v2

Kubernetes cgroup v1 is deprecated and kubelet fails on v1 nodes by default from v1.35. Here’s how to check your nodes and plan a safe cgroup v2 migration.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Memory-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:

  • Use standalone cAdvisor v0.43.0 or later for cgroup v2 compatibility.
  • Use automaxprocs v1.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.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep 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.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.