Kubernetes 1.31: 节点 Cgroup 驱动程序的自动配置 (beta)
一直以来,为新运行的 Kubernetes 集群配置正确的 cgroup 驱动程序是用户的一个痛点。
在 Linux 系统中,存在两种不同的 cgroup 驱动程序:cgroupfs
和 systemd
。
过去,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 驱动程序。
未来工作
最终,kubelet 对 cgroupDriver
配置字段的支持将会被移除,如果 CRI 实现的版本不够新,无法支持此功能,kubelet 将无法启动。