Kubernetes Blog
Follow
Kubernetes v1.34: Autoconfiguration for Node Cgroup Driver Goes GA
Configuring the cgroup driver has historically been a complex issue for Kubernetes users. Linux systems use two cgroup drivers: cgroupfs and systemd. Previously, both the kubelet and the CRI implementation, such as containerd or CRI-O, had to be configured identically to avoid kubelet malfunctions without clear error messages. This often caused significant frustration for cluster administrators.In Kubernetes v1.28.0, the KubeletCgroupDriverFromCRI feature gate was introduced. This allows the kubelet to query the CRI implementation for its preferred cgroup driver. After several release cycles, this feature has now reached General Availability (GA) in Kubernetes 1.34.0. To utilize this, administrators must ensure their CRI implementation is sufficiently updated.Containerd requires version v2.0.0 or later, while CRI-O needs version v1.28.0 or later. Kubernetes is deprecating support for containerd v1.y versions. While CRI-O releases align with Kubernetes versions, containerd has its own release cycle, with its feature support only present in v2.0 and above. Kubernetes 1.34 still supports older containerd LTS releases like v1.7.The Kubernetes SIG Node community has set a timeline for phasing out containerd v1.y support. The last Kubernetes release to include this support will be the final version of v1.35, with support ending in v1.36.0. To aid in this transition, a metric called kubelet_cri_losing_support can be monitored. If this metric indicates a containerd version of 1.36.0, it signals that the containerd runtime is outdated for upcoming requirements. Administrators must upgrade containerd to v2.0 or a newer version before or concurrently with upgrading the kubelet to v1.36.0.