Kubernetes 1.31: Node Cgroup 驱动程序自动配置 (Beta)

一直以来,正确配置 cgroup 驱动程序对于运行新 Kubernetes 集群的用户来说是一个痛点。在 Linux 系统上,有两种不同的 cgroup 驱动程序:cgroupfssystemd。过去,kubelet 和 CRI 实现(如 CRI-O 或 containerd)需要配置成使用相同的 cgroup 驱动程序,否则 kubelet 会报错退出。这让许多集群管理员头疼不已。然而,现在曙光在前!

自动化 cgroup 驱动程序检测

在 v1.28.0 中,SIG Node 社区引入了特性门控 KubeletCgroupDriverFromCRI,它指示 kubelet 向 CRI 实现查询应使用哪个 cgroup 驱动程序。在我们等待主要两个 CRI 实现 (containerd 和 CRI-O) 支持落地期间,Kubernetes 发布了一些小的版本,但在 v1.31.0 中,此特性现已进入 Beta 阶段!

除了设置特性门控外,集群管理员还需要确保他们的 CRI 实现版本足够新

  • containerd:支持在 v2.0.0 中添加
  • CRI-O:支持在 v1.28.0 中添加

然后,他们应该确保他们的 CRI 实现配置了他们希望使用的 cgroup_driver。

未来工作

最终,kubelet 的 cgroupDriver 配置字段的支持将被移除,如果 CRI 实现版本不够新而无法支持此特性,kubelet 将无法启动。