DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowHalloween 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×
FREEDOM251

Freedom251 › Blog › cgroup v1

Kubernetes cgroup v1 vs. cgroup v2: What Changes for Cluster Operators

By Freedom251 Team · · 11 min read

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

Moving a Kubernetes node from cgroup v1 to cgroup v2 is primarily an operating-system and compatibility change, not a workload migration. The kubelet normally detects v2 automatically, but the node image, Linux kernel, container runtime, cgroup driver, monitoring and security agents, and applications that inspect cgroup files must all be ready. Kubernetes now treats v1 as a deprecation concern: beginning with Kubernetes 1.35, a kubelet on a v1 node does not start by default unless the temporary failCgroupV1: false override is set.

What cgroup v1 and v2 do in a Kubernetes node

Linux control groups (cgroups) organize processes into groups and apply resource controls such as CPU time, memory limits, process counts and accounting. Kubernetes uses them on every Linux node to enforce pod and container requests and limits. Both the kubelet and the container runtime must talk to the same control-group system; if they do not, resource enforcement and node stability can suffer. The Kubernetes documentation explains this relationship in its Container Runtimes guide.

As an Amazon Associate I earn from qualifying purchases.

cgroup v1 exposes separate, often independently mounted hierarchies for controllers such as memory, CPU and devices. cgroup v2 replaces that model with a unified hierarchy and a newer interface. Kubernetes support for v2 has been stable since version 1.25. The change affects how the operating system presents resource files, how services are delegated to child cgroups, and which tools can read usage and pressure information. It does not require rewriting ordinary Kubernetes manifests: a pod’s requests and limits remain Kubernetes API fields.

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

Key differences operators need to plan for

Area cgroup v1 cgroup v2 Operational consequence
Hierarchy and API Multiple controller hierarchies and controller-specific file layouts. One unified hierarchy with a common control-group interface and safer subtree delegation. Scripts and agents that expect v1 paths or filenames can fail even when pods run normally.
Resource accounting Accounting and controls vary by controller and implementation. More consistent accounting, unified delegation rules and additional facilities such as Pressure Stall Information (PSI). Capacity and saturation dashboards may need v2-aware collectors; do not infer a performance gain without measurements for your workload.
Node software compatibility Older monitoring, security and runtime components commonly assume v1 files. Components must understand the unified hierarchy and v2 filenames and semantics. Inventory anything that reads /sys/fs/cgroup directly before draining a node.
Kernel and distribution Available on older Linux distributions and kernels. Requires a distribution that enables v2 and a sufficiently new kernel. Changing the kubelet setting alone cannot provide v2; the node image and boot configuration must support it.
Runtime and kubelet driver Legacy systems often used the cgroupfs driver. Systemd-based nodes should normally use the systemd driver in both kubelet and runtime. Both components must use the same driver or resource views can diverge.
Kubernetes lifecycle Still usable only as a transition path in releases that permit it. The strategic direction for supported Linux nodes. Plan the move before upgrading to a release that rejects v1 by default.

The kernel’s authoritative description of the unified interface is the Linux cgroup v2 documentation. Kubernetes describes the platform-specific behavior in About cgroup v2.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

What Kubernetes does automatically—and what it does not

When the operating system is already running cgroup v2, the kubelet detects that mode and adapts without an additional Kubernetes cgroup-version switch. That automatic detection does not upgrade the operating system, repair an incompatible runtime, or translate third-party software that opens v1 files. The node still needs a supported kernel, distribution, runtime and driver configuration.

Pod specifications also do not change merely because the node uses v2. CPU and memory requests and limits continue to be declared in the usual way. The observable changes are below the Kubernetes API: different files, different delegation behavior, new accounting capabilities and, where configured, a different way of applying swap limits.

Prerequisites before converting a node

Use a v2-capable distribution and kernel

Kubernetes documents Linux kernel 5.8 or later as the cgroup v2 requirement. The distribution must enable v2 and boot with it; a kernel that contains v2 support is not sufficient if the vendor image leaves v2 disabled. Treat the documented version as a minimum, not a guarantee that every combination of distribution, runtime and Kubernetes release is supported. Check the exact node-image support statement from your Linux vendor and Kubernetes provider.

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

Use a compatible container runtime

The Kubernetes documentation gives containerd 1.4 or later and CRI-O 1.20 or later as example minimum runtime versions for v2. Verify the runtime’s support matrix for the OS and Kubernetes version you operate. Upgrade the runtime as part of a tested node-image change rather than changing the cgroup mode on an otherwise frozen image.

Align the cgroup driver

The kubelet and runtime must select the same cgroup driver. On a systemd-based Linux distribution, Kubernetes recommends systemd, because systemd is already managing services and their control groups. Running systemd and a separate cgroup manager against the same hierarchy can create conflicting resource views and instability under pressure. The driver setting is independent of whether the kernel is v1 or v2, but v2 migrations are a good time to eliminate a mismatch.

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

Check swap policy separately

cgroup v2 can expose a memory.swap.max limit to the runtime, but that capability does not turn swap on for pods automatically. Linux kubelet behavior is still governed by its swap configuration; with swap enabled, kubelet does not start by default unless it has been configured to tolerate that condition. Follow the Kubernetes swap memory management documentation and validate both kubelet and runtime settings. Decide whether swap is disabled, tolerated for the node, or deliberately available to workloads, and document that policy before rollout.

How to identify the current mode and driver

Run the following on each Linux node, preferably through the same privileged maintenance path used for other node checks:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
stat -fc %T /sys/fs/cgroup/
  • cgroup2fs indicates cgroup v2.
  • tmpfs indicates cgroup v1 in the Kubernetes instructions.

Confirm the result against the node distribution’s documentation, especially on images that mount compatibility hierarchies. Then inspect the kubelet configuration and the runtime configuration for their cgroup-driver value. A node is not ready for migration if one says systemd and the other says cgroupfs.

For a view of the systemd hierarchy and the services placed in it, use:

systemd-cgls
systemd-cgtop
systemctl list-units 'kube*' --type=slice

These commands help reveal whether kubelet, the runtime and other node services are in the slices you expect. They do not replace checking the runtime’s own configuration or the files used by an agent.

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord | 6.35mm Jack, Durable Design, Stage and Home Studio Use, Low Noise Shielded Electric Cord for Bass, Keyboard, Amp, Mixer
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

Inventory software that may break on v2

The highest migration risk is software that reads cgroup files directly rather than using a runtime or operating-system API. Create an inventory for every daemon, sidecar and host application that has access to /sys/fs/cgroup.

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

Monitoring and capacity tools

Check node exporters, custom metrics collectors, autoscaling integrations and dashboards for v1-only paths such as controller-specific memory or CPU directories. Update them to versions that understand the unified hierarchy and verify that reported usage, limits and throttling still match the runtime’s view. If cAdvisor is deployed as a standalone DaemonSet, Kubernetes specifically advises version 0.43.0 or later for cgroup v2.

Security and observability agents

Host intrusion sensors, policy agents, profilers and log collectors can depend on v1 filenames, mount discovery or delegation behavior. Ask each vendor for its cgroup v2 support statement for the exact agent version, kernel and distribution. Test startup, rule loading and event collection after the node reboots in v2 mode; an agent that starts but silently loses container attribution is not compatible enough.

Application runtimes

Some language runtimes, databases and embedded libraries inspect cgroups to size worker pools or report container limits. Verify their documented v2 support and test the limit-detection path under a deliberately constrained pod. A process that falls back to host memory or CPU counts can over-allocate even though Kubernetes is enforcing the pod limit correctly.

In-house scripts

Search images, DaemonSets, systemd units and host scripts for hard-coded paths under /sys/fs/cgroup. Replace path assumptions with a supported library or runtime interface where possible. If direct inspection is unavoidable, implement explicit v1 and v2 detection and test the files and permissions on both modes.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

A controlled node-by-node migration procedure

Use a surge or replacement strategy where possible: build a known-good v2 node image, add new nodes, move workloads, then retire v1 nodes. In-place boot changes are possible but increase recovery complexity because a failed reboot can remove the node from service.

  1. Record the baseline. Capture the node’s cgroup mode, kernel and distribution release, kubelet and runtime versions, cgroup-driver values, swap state, systemd slices, and the versions of monitoring and security agents. Save representative pod CPU, memory, throttling and restart metrics so post-migration checks have a comparison point.
  2. Validate the image in a non-production pool. Boot the target distribution with cgroup v2 enabled, confirm the stat result, and install the supported runtime and kubelet versions. Do not proceed if the runtime cannot create a test pod or if either component reports a driver mismatch.
  3. Update dependent agents and images. Install v2-capable versions of collectors and security software, including cAdvisor 0.43.0 or later when it is a standalone DaemonSet. Rebuild any image that contains a v1-only cgroup reader.
  4. Exercise resource enforcement. Run test pods with CPU and memory requests and limits, observe runtime and kubelet events, and confirm that metrics show the expected limit and throttling behavior. Include a pod that approaches its memory limit so that you test an actual enforcement path rather than only pod startup.
  5. Drain the production node. Apply the normal disruption-budget-aware drain procedure, respecting workload replication and local-storage exceptions. Keep the old node available until the replacement has passed health checks.
  6. Join or reboot the node in v2 mode. Start kubelet and the runtime only after their driver configuration is aligned. Check node readiness, runtime health and systemd slices before scheduling ordinary workloads.
  7. Run post-join checks. Verify that DaemonSets are ready, logs contain no cgroup mount or permission errors, and metrics identify containers correctly. Compare resource usage and eviction signals with the baseline rather than assuming identical file names or counter labels.
  8. Canary real workloads. Return a small, representative set of services first. Watch latency, restarts, OOM events, throttling, autoscaler inputs and security alerts through a normal peak period. Expand the pool only after those signals remain correct.
  9. Retire the v1 node. Keep a documented rollback image or spare capacity until the canary and the first production cycle are complete. Then remove the old node so that future upgrades cannot accidentally depend on its v1 behavior.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Understanding the Kubernetes 1.35 deprecation change

Kubernetes marks cgroup v1 as deprecated starting in version 1.35. In that release, kubelet does not start on a v1 node by default. The documented temporary opt-out is failCgroupV1: false in the kubelet configuration. This setting is a bridge for upgrades and troubleshooting, not a long-term migration plan; removal timing follows the Kubernetes deprecation policy.

Plan the work against the Kubernetes version that will run on the node, not only the version currently installed. A cluster that is healthy on v1 today can fail to rejoin after a node-image refresh or control-plane upgrade if the new kubelet applies the default v1 failure behavior.

Swap and memory behavior on cgroup v2

Swap is a policy decision with two independent parts: whether kubelet permits swap on the node and whether the runtime applies a swap limit to a container. On v2, the runtime can use memory.swap.max, but the setting must be configured and verified. A v2 node with swap enabled does not automatically provide swap to every pod, and a pod limit does not by itself describe how much swap it may consume.

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

Test the intended policy with a controlled workload and inspect kubelet logs, runtime configuration and the node’s memory and swap counters. If the policy is “no swap,” disable it consistently in the node image and verify after every reboot. If the policy allows swap, document the permitted behavior for workloads and alert on swap pressure so that memory exhaustion is not mistaken for normal caching.

Troubleshooting common migration failures

Kubelet refuses to start after the upgrade

On a v1 node running a Kubernetes release with the new default, this is expected behavior rather than a random service failure. Confirm the mode with stat -fc %T /sys/fs/cgroup/. The durable fix is to move the node to a v2-capable image; the temporary documented compatibility setting is failCgroupV1: false. Check the kubelet version and configuration file actually used by the service before changing anything.

Pods start but limits or metrics look wrong

Check that kubelet and runtime use the same driver, then inspect the runtime’s cgroup placement and the collector’s v2 support. A dashboard that still reads v1 paths can show zeros or host-wide values while enforcement is working. Compare direct runtime information with the collector output and update the collector before changing pod specifications.

The runtime cannot create a sandbox

Review runtime logs for controller, mount or delegation errors. Confirm that the distribution booted the intended hierarchy, that the runtime version supports it, and that systemd and the runtime are not managing the same subtree through different drivers. Recreate the node from the tested image if the boot configuration is ambiguous.

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

A security or observability agent loses container attribution

Inspect the agent’s startup log and its cgroup discovery method. Upgrade to a v2-compatible release, grant only the documented host access, and test attribution on a pod with a known namespace and container ID. Do not treat “the daemon is running” as proof that its events are still correctly associated.

Workloads show unexpected memory pressure

First distinguish a changed measurement from changed enforcement. Compare kubelet eviction events, runtime counters, PSI and application-level memory metrics. Check swap policy and whether an application runtime changed its container-size detection. Roll back the canary or cordon the node while correcting the component that changed its interpretation.

Managed Kubernetes and provider-owned nodes

In a managed service, the provider may control the node image, boot parameters, kubelet flags and runtime version. Ask for the provider’s cgroup v2 adoption schedule, supported node images, upgrade behavior and rollback procedure. The general Kubernetes documentation does not establish a universal timeline or command sequence for every provider, so do not infer one from a self-managed cluster. You still own workload compatibility: inspect DaemonSets, admission-installed agents and applications that read host cgroup files.

Migration decision checklist

  • Is the target distribution explicitly enabling cgroup v2, and is the kernel at least 5.8?
  • Is the container runtime version supported for the target OS and Kubernetes release?
  • Do kubelet and runtime use the same cgroup driver, preferably systemd on a systemd-based node?
  • Have all host agents, DaemonSets and application runtimes that inspect cgroup files been identified and upgraded?
  • Does standalone cAdvisor meet the documented v2 guidance of version 0.43.0 or later?
  • Have swap behavior and the desired memory.swap.max policy been tested separately?
  • Have you tested resource enforcement, metrics, autoscaling inputs, evictions and security events on a canary node?
  • Do you have spare capacity and a rollback image while the first production pool is observed?
  • If the cluster is managed, have you obtained provider-specific image and upgrade instructions?

Bottom line for cluster operators

cgroup v2 is a unified, better-defined Linux control-group interface that Kubernetes supports natively, but migration success depends on the node software around Kubernetes. Build or select a v2-enabled image, meet the kernel and runtime requirements, align the kubelet and runtime drivers, update direct cgroup readers, and make swap behavior explicit. Migrate with replacement nodes and canaries where possible. Treat the Kubernetes 1.35 v1 deprecation as an upgrade deadline signal, while using failCgroupV1: false only as a temporary bridge.

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.

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.

cgroup v1cgroup v2Cluster Operationscontainer runtimeDevOpsKubernetesLinux

Leave a Reply

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

Free tools Windows power users keep installed

One-click scans. No signup required.

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

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver 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.