升级 Kubernetes 前,先核对 cgroup 模式与配套兼容性

arthur4 小时前

先查节点,再升级

cgroup 是 Linux 管理容器 CPU、内存等资源的基础。v2 采用统一层级和更一致的接口,但迁移不能只看 Kubernetes 版本:v2 支持自 v1.25 起稳定,v1 支持自 v1.31 起进入维护模式。

从 v1.35 起,failCgroupV1 默认为 true,cgroup v1 节点上的 kubelet 默认无法启动。低于 v1.35 的集群,应在升级前迁移全部 Linux 节点,或明确安排临时设置 failCgroupV1: false;已使用 v1.35 及以上版本,也需逐节点确认。这一覆盖配置不是长期方案,后续移除遵循弃用政策。

kubeadm 的检查同样需要关注:检测到 cgroup v1 且 kubelet 为 v1.35 及以上时,初始化、加入和升级的预检会报错;较旧 kubelet 仍是警告。

核对运行时与监控

盘点节点模式后,还应确认容器运行时、资源采集组件及告警规则是否兼容 v2,检查它们对层级、接口和指标含义的依赖,不能把节点切换成功等同于整体适配完成。

迁移也不会自动解决内存驱逐问题:kubelet 仍将 active_file 视为不可回收,I/O 密集负载可能因页缓存触发内存压力。可在测量后考虑设置相等的内存 requests 与 limits。

Memory QoS 仅适用于 Linux cgroup v2 节点,自 v1.22 引入、v1.27 更新,到 v1.36 仍为 alpha;新增保护能力不应被当作稳定功能承诺。

评论

请登录后发表观点

暂无数据