What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
For a standard Linux Kubernetes node, enable cgroup v2, use a kernel version of at least 5.8, install a cgroup-v2-capable container runtime, and make the kubelet and runtime use the same cgroup driver. On systemd-based distributions, that driver should normally be systemd. Verify the hierarchy with stat -fc %T /sys/fs/cgroup/; cgroup2fs confirms cgroup v2.
The runtime configuration is version-sensitive. Containerd 1.x and 2.x use different TOML plugin tables, while CRI-O uses systemd by default. Change a joined node cautiously: replacing or reinstalling it is safer than switching drivers in place because existing Pod sandboxes can fail to recreate.
What cgroup v2 changes in Kubernetes
Control groups (cgroups) organize processes so Linux can enforce CPU, memory, and other resource limits. cgroup v1 exposes separate hierarchies for different controllers. cgroup v2 uses a unified hierarchy with a common delegation model and newer interfaces. Kubernetes can use those interfaces for more consistent resource accounting and features such as MemoryQoS.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsKubernetes considers cgroup v2 stable beginning with version 1.25. The kubelet detects cgroup v2 automatically when the operating-system and runtime prerequisites are satisfied; the configuration problem administrators most often need to solve is not enabling a kubelet switch, but keeping cgroup-driver selection consistent between the kubelet and the container runtime.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.
Why the driver must match
The kubelet and the runtime both create and manage cgroups. With the systemd driver, both delegate resource management through systemd units and slices. With cgroupfs, they write to the cgroup filesystem directly. Running two managers with different models can create conflicting hierarchies, inaccurate resource views, and instability when a node is under pressure. Kubernetes runtime guidance describes matching the drivers as critical.
Systemd is the normal choice
Most current Linux distributions run systemd as PID 1, and kubeadm-managed clusters are designed around a systemd service for the kubelet. For those nodes, configure both components to use systemd. A different choice can be valid for a rootless or specially delegated environment, but it must be deliberate and documented for that environment.
Prerequisites and version boundaries
Check each requirement before changing a production node. The lower runtime versions below indicate general cgroup v2 support; newer versions are relevant to automatic driver discovery and are not substitutes for checking the exact Kubernetes release documentation.
Recommended Free Tools
| Component | Baseline or example | What it means |
|---|---|---|
| Operating system | Distribution that enables cgroup v2 | The hierarchy must be mounted and usable by the node services. |
| Linux kernel | 5.8 or later | Kubernetes lists this as the cgroup v2 baseline. The October 6, 2026 migration guidance recommends 5.9 or later when using MemoryQoS. |
| Kubernetes | 1.25 or later for stable cgroup v2 | Earlier releases require release-specific validation and should not be assumed to have the same behavior. |
| Containerd | 1.4 or later for cgroup v2 support | Use the configuration table for the installed major version. |
| CRI-O | 1.20 or later for cgroup v2 support | CRI-O uses systemd by default in the Kubernetes runtime guide. |
| Automatic driver discovery | Containerd 2.0+ or CRI-O 1.28+ examples | These versions implement the CRI RuntimeConfig RPC used by supported Kubernetes releases for discovery. |
As of October 2026, the migration guidance identifies Kubernetes 1.36 as the current release at publication. Do not transfer feature-gate or fallback behavior from that guidance to another release without checking that release’s documentation.
Special environments
- Managed Kubernetes: provider images, kernel settings, upgrade timing, and required customer actions vary. Follow the provider’s cgroup v2 adoption and node-image guidance.
- Rootless nodes: user namespaces and systemd delegation change the normal assumptions. The official rootless procedure may use
cgroupfsinside delegated cgroups; do not copy a privileged systemd-host recipe without adapting it. - Application behavior: a host can be correctly configured while an application still fails to read limits. Runtime setup and application compatibility are separate checks.
How to check whether a node uses cgroup v2
Confirm the mounted hierarchy
Run this command on every node, not just the control-plane host:
stat -fc %T /sys/fs/cgroup/
The output cgroup2fs means the node is using cgroup v2. The output tmpfs indicates cgroup v1. If the result is not what the distribution documentation promises, stop before changing kubelet or runtime settings; the operating-system boot configuration or image may still select the other hierarchy.
Inspect systemd’s view
These commands help determine where Kubernetes services and workloads are placed and whether resource accounting is active:
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
systemctl list-units 'kube*' --type=slice
systemctl list-units 'kube*' --type=scope
systemd-cgls
systemd-cgtop
Use systemd-cgls to inspect the tree, and systemd-cgtop to watch usage while reproducing a problem. When eBPF programs or cgroup attachments are relevant, list them with:
bpftool cgroup list
Record the kernel version, Kubernetes version, runtime version, hierarchy result, and current driver settings in the node change plan. Those details make a later mismatch diagnosable.
Should Kubernetes use systemd or cgroupfs?
| Choice | Best fit | Advantages | Risks or conditions |
|---|---|---|---|
systemd |
Normal systemd-based hosts and kubeadm clusters | One manager owns the hierarchy; aligns with kubelet service management and current Kubernetes guidance. | Both kubelet and runtime must use it, and systemd delegation must be healthy. |
cgroupfs |
Specific legacy, embedded, or rootless arrangements that require it | Direct filesystem management can fit environments without a usable systemd manager. | Do not mix it with a systemd-managed kubelet. Rootless setups need the exact delegation model documented for that runtime. |
There is no benefit in selecting cgroupfs merely because it was used on an older cgroup v1 node. On a systemd host, the consistent systemd configuration is the safer default. If a product or internal platform standard mandates cgroupfs, apply that standard to both components and test pod creation, eviction, and limit enforcement before rollout.
Configure the kubelet cgroup driver
Set the driver explicitly when needed
Use a KubeletConfiguration object managed by your cluster’s provisioning system. The essential field is:
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
Distribute the same setting to every node role that runs a kubelet. In a kubeadm-managed cluster, systemd is the recommended choice because kubeadm manages the kubelet as a systemd service. Apply the configuration through kubeadm or the node-management mechanism used by your cluster rather than editing a generated file that automation will overwrite.
When explicit configuration is required
Explicitly set cgroupDriver when the runtime cannot report its driver through the CRI RuntimeConfig RPC, when your Kubernetes release does not enable discovery, or when you need deterministic behavior during a migration. The value must exactly match the runtime’s manager: systemd with systemd, or cgroupfs with cgroupfs.
After changing kubelet configuration, use your service manager or cluster automation to reload and restart the kubelet in the maintenance window. Confirm that the node returns Ready before proceeding to the next node.
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
How do I configure containerd for cgroup v2 in Kubernetes?
1. Identify the installed containerd major version
Check the installed binary and package metadata using the operating-system tools available on the node. The major version determines the plugin table; copying a containerd 1.x example into a 2.x configuration, or vice versa, can leave the effective setting unchanged.
2. Edit the correct configuration file
The usual path is /etc/containerd/config.toml, unless the service unit starts containerd with a custom configuration path. Inspect the unit or package configuration before editing so you change the file the running service actually reads.
3. Set systemd for containerd 1.x
For containerd 1.x, place the option under the version 1 CRI plugin table:
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
The capitalisation of SystemdCgroup matters in this TOML option. Keep the setting under the runc runtime that your CRI configuration actually selects.
4. Set systemd for containerd 2.x
For containerd 2.x, use the version 2 CRI plugin table:
Free tools Windows power users keep installed
One-click scans. No signup required.
[plugins.'io.containerd.cri.v1.runtime'.containerd.runtimes.runc.options]
SystemdCgroup = true
Do not add both tables as a guess. Confirm the installed major version and maintain one authoritative runtime stanza.
5. Ensure the CRI plugin is enabled
Some package installations disable the CRI integration by default. Inspect the disabled_plugins setting and ensure cri is not listed. A correct SystemdCgroup value cannot help if the kubelet is connecting to a containerd instance without its CRI plugin enabled.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
6. Restart and verify
Restart containerd after saving the configuration:
systemctl restart containerd
Then check the service status and kubelet logs through your normal service-management tooling. Verify that new Pod sandboxes start and that the kubelet remains healthy. Existing sandboxes should not be treated as proof that the new setting is active; test a newly created workload during the maintenance window.
Configure CRI-O for cgroup v2
Use the default systemd manager
The Kubernetes runtime guide states that CRI-O uses systemd by default. On a conventional systemd host, leave that default in place and set the kubelet to systemd. Confirm the effective CRI-O configuration rather than assuming a distribution package has retained the upstream default.
If cgroupfs is intentional
If your environment specifically requires cgroupfs, CRI-O’s example pairs these settings:
cgroup_manager = "cgroupfs"
conmon_cgroup = "pod"
The kubelet must also use cgroupfs. The conmon_cgroup = "pod" value is part of the documented pairing; changing only cgroup_manager creates a different arrangement that needs its own validation.
Restart only within a controlled change
After editing CRI-O’s configuration, restart the service according to your distribution’s unit name and verify that the CRI endpoint is available. Drain or replace a node before changing the driver if it is already serving workloads; the migration risks are the same as with containerd.
Automatic driver discovery and release caveats
The CRI RuntimeConfig RPC lets a kubelet learn the runtime’s cgroup driver instead of relying solely on a manually duplicated setting. The October 6, 2026 migration guidance identifies containerd 2.0+ and CRI-O 1.28+ as runtime examples implementing that RPC. Older runtimes may support cgroup v2 but still require an explicit, matching kubelet configuration.
Do not assume discovery is active
Discovery depends on the Kubernetes release, feature gates, and fallback rules. The runtime guidance records Kubernetes 1.37 behavior using the KubeletCgroupDriverFromCRI feature gate when enabled and when the runtime implements RuntimeConfig, along with planned later fallback behavior. Check the exact release documentation and feature-gate settings in your cluster before removing an explicit kubelet driver.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Use explicit settings during migration
For a mixed-version fleet, an explicit kubelet setting that matches every runtime is easier to reason about than partial discovery. Upgrade runtimes and Kubernetes components in a staged pool, verify the reported driver, and only then consider relying on automatic detection.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Safely migrate an existing node
Changing a cgroup driver on a node that has already joined the cluster is a sensitive operation. Pods and their sandboxes were created with the old hierarchy semantics. Recreating a sandbox after the driver changes can fail, and restarting the kubelet alone may not repair it.
Preferred approach: replace or reinstall
- Build or select a node image with cgroup v2 enabled, the target kernel, the supported runtime version, and matching systemd settings.
- Validate the image on a disposable node with
stat -fc %T /sys/fs/cgroup/and the runtime checks described above. - Cordon the old node so new workloads are not scheduled there.
- Drain it using your normal eviction policy, respecting PodDisruptionBudgets and workloads that cannot be moved immediately.
- Remove or reinstall the node with the target configuration, then join it to the cluster using your approved bootstrap process.
- Run a new Pod workload, inspect node and kubelet health, and observe resource enforcement before returning the node to service.
Node replacement keeps old and new cgroup layouts from coexisting on one machine and gives automation a repeatable rollback: keep the old image available until the replacement pool is proven.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC 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 & 11In-place changes are an exception
If replacement is impossible, schedule a full maintenance window, cordon and drain first, change the runtime and kubelet together, restart both services in the order required by your platform, and test sandbox creation before uncordoning. Be prepared to rebuild the node if Pods fail to start or the kubelet reports driver incompatibility.
Verify the finished configuration
Host and service checks
stat -fc %T /sys/fs/cgroup/returnscgroup2fs.- The kubelet configuration reports the intended driver, or the release-supported CRI discovery path is demonstrably active.
- The runtime’s effective configuration sets the same driver and has its CRI plugin enabled.
- Systemd inspection shows kubelet and workload units in the expected hierarchy.
- A newly created Pod reaches
Running, and deleting and recreating it produces a fresh sandbox successfully.
Observe under resource pressure
Use systemd-cgtop while a controlled test workload consumes CPU or memory. Compare the observed cgroup placement with systemd-cgls. If you use eBPF-based enforcement or monitoring, inspect attachments with bpftool cgroup list. These checks reveal whether the setting is merely present in a file or is actually governing running processes.
Application compatibility details
Go applications using automaxprocs
For workloads that use uber-go/automaxprocs, Kubernetes recommends version 1.5.1 or later for cgroup v2. An older library can calculate CPU availability incorrectly even when the node and runtime are configured correctly. Upgrade the dependency or set process limits explicitly as part of the application release.
Node.js memory limits
The Kubernetes concept documentation says cgroup v2 memory-limit detection through libuv begins with Node.js 20.3.0. Node.js 18 does not reliably detect these limits in the documented scenario, so affected applications may need explicit V8 heap sizing. This is an application-level mitigation; it does not replace matching the kubelet and runtime drivers.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Quick Recap
Troubleshooting common failures
| Symptom | Likely cause | Action |
|---|---|---|
stat returns tmpfs |
The host booted with cgroup v1. | Follow the distribution’s cgroup v2 enablement and reboot procedure before changing runtime settings. |
| Pods fail to create sandboxes after a driver change | Existing Pods were created under the old hierarchy. | Do not rely on another kubelet restart; drain and replace or reinstall the node. |
| Containerd setting appears ignored | Wrong major-version table or wrong configuration path. | Check the running binary version and service arguments, then use the corresponding 1.x or 2.x stanza. |
| Kubelet cannot reach containerd’s CRI | The cri plugin is disabled. |
Remove cri from disabled_plugins, restart containerd, and verify the endpoint. |
| Resource accounting is inconsistent | Kubelet and runtime use different drivers. | Set both to systemd or both to cgroupfs; do not mix them. |
| Automatic detection does not occur | Runtime lacks RuntimeConfig, or the feature gate is unavailable or disabled. |
Use an explicit kubelet driver matching the runtime and consult the exact Kubernetes release guidance. |
| Rootless workloads cannot access expected controllers | User-namespace delegation differs from a privileged host. | Follow the rootless-specific systemd delegation and cgroupfs instructions instead of the standard host recipe. |
Production rollout checklist
- Confirm the node image enables cgroup v2 and the kernel meets the required version.
- Record Kubernetes, kubelet, containerd or CRI-O, and kernel versions.
- Choose one driver and document why; use systemd on ordinary systemd hosts.
- Apply the matching kubelet configuration through cluster management.
- Use the containerd table for its installed major version, or verify CRI-O’s effective manager.
- Ensure containerd’s CRI plugin is enabled.
- Validate hierarchy, service units, cgroup placement, and a newly created Pod.
- Roll out by replacing or reinstalling joined nodes whenever possible.
- Test application limit detection for libraries and runtimes that are sensitive to cgroup v2.
- For managed providers or rootless nodes, follow their specialized procedures rather than assuming the standard systemd-host path.
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.

