Ubuntu 上选择 Kubernetes 版本的实用指南
一、选择原则
- 优先选择处于维护期的版本,避免使用已**停止维护(EOL)**的版本。
- 保持组件一致:同一集群内所有节点的 kubeadm/kubelet/kubectl 版本应完全一致;kubeadm 与要部署的 Kubernetes 版本需匹配。
- 与生态兼容:确认与所选 容器运行时(如 containerd)、CNI 网络插件、存储/监控/Ingress 等组件的版本兼容矩阵。
- 操作系统匹配:在 Ubuntu 22.04/24.04 等新系统上,使用新版仓库源(不再依赖 Ubuntu 代号),避免仓库不可用。
- 场景驱动:生产环境倾向稳定版;测试/研发可适度尝鲜,但要有回滚与灰度策略。
二、版本选择建议
- 生产优先:选择当前仍在维护的稳定小版本(如 1.28.x、1.29.x 等),并优先采用该系列的最新补丁版本,兼顾稳定性与安全性。
- 如需较新特性:可在非核心业务或隔离环境中尝试次新版本,但务必评估组件兼容性与升级路径。
- 如需维护老集群:若现有环境停留在 1.16/1.23 等老版本,短期内可继续维护,但应规划升级路线,并锁定可用的 kubeadm/kubelet/kubectl 版本组合。
- 云厂商托管集群:若使用 AKS 等托管服务,节点池的 Kubernetes 版本需与托管控制面兼容,建议通过节点池升级或蓝绿迁移完成版本演进。
三、在 Ubuntu 上锁定与安装指定版本
- 查看可用版本:
- 列出仓库中可用版本:sudo apt update && apt-cache madison kubeadm kubelet kubectl
- 安装指定版本(示例:1.28.x):sudo apt install -y kubeadm=1.28.* kubelet=1.28.* kubectl=1.28.*
- 初始化集群时指定版本:
- kubeadm init --kubernetes-version=v1.28.x [其他参数]
- 老版本与兼容性提示:
- 老版本(如 1.16)同样通过 apt 锁定三组件版本;kubeadm 与集群版本需一致。
- 老版本常依赖特定 容器运行时(如 Docker 18.09 对应 1.16),不满足会导致初始化失败。
- 仓库源注意:
- 新系统请使用新版仓库(不依赖 Ubuntu 代号),避免 “仓库无 Release 文件” 等错误。
四、快速决策表
| 场景 |
推荐选择 |
关键注意点 |
| 生产业务、稳定性优先 |
当前维护期的稳定小版本(如 1.28.x/1.29.x 的最新补丁) |
三组件一致;与 CNI/存储/监控/Ingress 的版本兼容;准备回滚与灰度 |
| 研发/测试尝鲜 |
次新版本 |
隔离环境;评估升级路径与兼容性 |
| 老项目维护 |
维持现有版本(如 1.23.x/1.16.x) |
锁定可用 kubeadm/kubelet/kubectl;必要时升级运行时与依赖 |
| 云上托管(AKS) |
与托管控制面匹配的节点池版本 |
通过新增节点池与蓝绿迁移升级,避免直接跨大版本变更 |
以上要点可帮助你在 Ubuntu 上做出兼顾稳定性、兼容性与可维护性的 Kubernetes 版本选择,并顺利完成安装与后续升级。