本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。
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_driver。
未来的工作
最终,kubelet 的 cgroupDriver
配置字段将不再被支持,如果 CRI 实现版本不够新以支持此功能,kubelet 将无法启动。