CentOS 上 Kubernetes 版本选择建议
一 选择原则
- 以操作系统内核为第一约束:在 CentOS 7.9 上,默认内核为 3.10,对现代 K8s 网络与特性支持有限;自 v1.24 起对内核要求显著提升(推荐 ≥4.19),而 v1.26+ 更建议 ≥5.10。在 3.10 内核上强行运行 v1.28+(尤其是 v1.31) 常出现网络性能显著下降、IPVS 参数不可用等兼容性问题。若希望在新内核上获得稳定体验,优先考虑 CentOS Stream 8/9、Rocky Linux 8/9、AlmaLinux 8/9 等替代发行版。运行时方面,K8s v1.24 起移除内置 Dockershim,生产推荐 containerd 作为 CRI。
二 按操作系统版本的建议
| 操作系统与内核 |
推荐 K8s 版本区间 |
运行时与关键配置 |
适用场景与说明 |
| CentOS 7.9(内核 3.10) |
保守稳定:v1.23.x;如必须上更高版本,务必先升级内核 |
运行时可用 Docker 19.03+/20.10.x(配置 systemd cgroup) 或 containerd 1.6+(SystemdCgroup=true);网络插件 Flannel v0.14.0+ / Calico v3.20+ |
仅建议用于兼容性验证或存量环境;不建议在 3.10 内核上跑 v1.28+,易出现网络性能与稳定性问题 |
| CentOS 7.9(升级内核 ≥5.4/≥5.10) |
可上 v1.26–v1.31(优先小版本补丁) |
推荐 containerd;开启 IPVS 与必要的内核参数 |
在不更换系统的前提下,升级内核是可行路径,但长期仍建议迁移到更新发行版 |
| CentOS Stream 8/9、Rocky Linux 8/9、AlmaLinux 8/9 |
建议 v1.28+ 至最新稳定小版本 |
推荐 containerd;按发行版启用最新内核与模块 |
新项目首选,内核新、兼容性与性能更好,社区与生态支持更完善 |
| 说明:表中版本边界与注意事项来自对内核要求、运行时变更与社区踩坑经验的归纳;在 3.10 内核上运行 v1.31 出现“网络慢如蜗牛”等性能问题的案例已被多次验证,升级内核或迁移系统可显著改善。 |
|
|
|
三 运行时与网络插件搭配
- 运行时选择
- v1.23.x:可选 Docker 19.03+/20.10.x 或 containerd;如使用 Docker,务必将 cgroup 驱动设为 systemd。
- v1.24+:内置 Dockershim 已移除,推荐 containerd 作为 CRI,配置 SystemdCgroup=true 更为稳妥。
- 网络插件
- Flannel v0.14.0+ 与 Calico v3.20+ 对 v1.23.x 兼容良好;更高版本 K8s 建议优先使用与内核/特性匹配的 CNI(如基于 eBPF 的方案需较新内核支持)。
四 快速决策清单
- 若仍在 CentOS 7.9 默认 3.10 内核:优先选择 v1.23.x;若需更高版本,先升级内核至 ≥5.4/≥5.10,或直接迁移到 CentOS Stream 8/9、Rocky/AlmaLinux 8/9。
- 若已升级内核或在新发行版上部署:优先 containerd 路线,选择当前稳定小版本(如 v1.28.x / v1.29.x / v1.30.x 等),并配套使用与内核能力匹配的 CNI 与 kube-proxy 模式。