首页/云/Kubernetes 速查/集群升级的顺序与约束
集群运维与排障54 条

集群升级的顺序与约束

升级先控制面后节点,跨版本逐个小版本推进;kubelet 不得比 apiserver 新且只能落后有限个小版本(以官方版本偏差策略为准)。

Kubernetes 速查云更新于 2026-10-13

升级要先讲顺序

集群升级的基本顺序是先进控制面、后升级节点,且要逐个小版本推进,不能跨多个小版本一次跳。组件版本存在偏差约束:节点组件不能比接口服务更新,且只能落后有限的小版本。理解这两条,绝大多数升级事故都能提前避免。

基本信息

适用平台自建集群(kubeadm 等工具),托管集群由云厂商提供升级入口
升级顺序控制面组件先升,节点组件后升
版本步进每次只升一个小版本,逐次推进
偏差约束节点组件不得高于接口服务组件
前置动作备份数据、检查废弃接口使用情况、确认副本冗余

升级前的必查项

  • 数据后端快照已备份并校验可读
  • 废弃接口清单:确认现有清单没有使用将被移除的接口版本
  • 关键工作负载的副本数与中断预算能承受滚动重启
  • 组件兼容矩阵:网络、存储、监控等插件是否支持目标版本
  • 回退方案:明确回退到哪个版本以及数据如何处理

典型路径(kubeadm 环境示意)

典型路径(kubeadm 环境示意)
kubeadm upgrade plan                               # 查看可升级目标与提示
# 控制面节点:升级管理工具 → 应用升级 → 升级节点组件与命令行工具
kubectl drain node1 --ignore-daemonsets --delete-emptydir-data   # 腾空待升级节点
# 节点:升级节点组件后重启服务
kubectl uncordon node1                             # 恢复调度
kubectl get nodes -o wide                          # 确认版本与状态一致

阶段与风险

阶段关键动作风险点
预检查看升级计划与提示忽略废弃接口提示
控制面逐个升级控制面节点同时操作多个节点可能失去多数派
节点腾空、升级、恢复调度容量不足导致副本无法重排
验证确认版本与工作负载状态只看节点就绪,未验证业务
工作负载自身的不兼容改动往往比集群升级本身更容易出问题:滚动重建时新版本容器要能正常启动,否则升级过程中会出现大面积不可用。
跨多个小版本一次性升级不符合版本偏差策略,组件之间无法互操作,出问题的概率极高。控制面节点也不应同时全部操作,否则可能失去多数派。

易错点

  • 跨多个小版本一次升级:偏差策略不允许,组件兼容性无法保证
  • 升级前不做废弃接口检查:控制面升级后旧清单提交失败,发布流程直接中断
  • 同时升级全部控制面节点:失去多数派后集群不可写,恢复代价很大
  • 升级前不备份数据后端:一旦出现问题,没有可回退的数据基准

数据来源与参考

  • Kubernetes 官方文档 · 版本偏差策略与集群升级
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌