Kubernetes has deprecated cgroup v1, a Linux kernel feature for managing system resources. Support for cgroup v1 moved into maintenance mode with Kubernetes v1.31, while cgroup v2 has been stable since Kubernetes v1.25. This change impacts how Kubernetes allocates CPU and memory to containers.
cgroup v2 offers a single unified hierarchy, a more consistent interface, and a stronger foundation for resource isolation. It also provides modern resource-management features compared to cgroup v1.
Starting with Kubernetes v1.35, the `failCgroupV1` setting defaults to `true`, preventing the kubelet from starting on cgroup v1 nodes. Administrators can temporarily set `failCgroupV1: false` in the kubelet configuration, but this is a temporary override before full removal. Users on releases older than v1.35 must migrate all Linux nodes to cgroup v2 before upgrading.
For kubeadm-managed clusters, Kubernetes v1.35 introduces a stricter `SystemVerification` preflight check. This check will return an error during `kubeadm init`, `kubeadm join`, and `kubeadm upgrade` if cgroup v1 is detected with kubelet v1.35 or later.
A known issue involves the kubelet treating `active_file` memory as non-reclaimable, which can lead to memory pressure and Pod eviction for I/O-intensive workloads. This behavior is not changed by migrating to cgroup v2. A documented workaround is to set equal memory requests and limits for containers performing intensive I/O.
✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →
One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.
One email a day. Unsubscribe in one click, any time.
Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.
▶ Play today's briefNew every morning, and the back catalogue is archived by date.
Kubernetes has deprecated cgroup v1, with support moving to maintenance mode in v1.31 and v1.35 defaulting to cgroup v2. This shift provides a unified hierarchy and improved resource management for containers. Users must migrate Linux nodes to cgroup v2 before upgrading to v1.35 or later to avoid kubelet startup failures.