The node's operating system still runs cgroup v1
CommonThe kubelet checks the host's cgroup mode, and with failCgroupV1 true (the default from 1.35) it refuses a v1 host. Distributions older than the ones that switched to v2 by default, or nodes booted with cgroup v2 turned off, are in this state.
Confirm
stat -fc %T /sys/fs/cgroup/ cat /proc/cmdline
tmpfs means cgroup v1; cgroup2fs means v2. The kernel command line shows whether systemd.unified_cgroup_hierarchy is being set
Fix
- Move the node to cgroup v2. The documentation recommends a distribution that enables it by default; on GRUB-based systems it describes adding systemd.unified_cgroup_hierarchy=1 to GRUB_CMDLINE_LINUX in /etc/default/grub, running sudo update-grub and rebooting.
- Check the v2 requirements first: kernel 5.8 or later, containerd 1.4+ or CRI-O 1.20+, and the systemd cgroup driver for both the kubelet and the runtime. The kubelet detects v2 by itself; no kubelet setting changes.
- Drain the node first (kubectl drain <node> --ignore-daemonsets) and uncordon it once it is Ready on v2.