You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下如何升级kubectl对应的Kubernetes服务端版本

Kubernetes v1.18 服务端升级到v1.24操作方案

核心规则前置:Kubernetes 禁止跨多个次版本跳跃升级,kubeadm 仅支持从当前版本升级到相邻的下一个次版本(n→n+1),你当前服务端版本为v1.18.2,必须严格按照 1.18 → 1.19 → 1.20 → 1.21 → 1.22 → 1.23 → 1.24 的路径逐版本升级,无法直接从1.18升到1.24。


升级前准备

  • 全集群备份:在所有控制节点执行etcd快照备份,这是升级失败后回滚的核心依据,同时备份各节点/etc/kubernetes/目录下的静态Pod配置、kubelet配置文件。
  • 集群状态校验:执行kubectl get nodes确认所有节点状态为Ready,执行kubectl get pods -A确认系统组件、业务Pod无持续异常重启。
  • 版本匹配准备:你当前安装的kubeadm为v1.24版本,版本过高无法适配1.18集群的升级流程,每次升级单个次版本前,需要先将kubeadm、后续要升级的kubelet/kubectl包替换为对应目标次版本的最新补丁版本,禁止用高版本kubeadm升级低版本集群。
  • 确认所有节点Swap分区已永久关闭,避免kubelet升级后启动异常。

单版本通用升级流程(每升级一个次版本重复一次该流程,直到升级到v1.24)

1. 升级控制平面

  • 第一个控制节点操作:
    1. 安装对应目标版本的kubeadm包,执行kubeadm version确认版本和目标升级版本一致。
    2. 执行kubeadm upgrade plan做预检查,确认所有检查项无报错,输出的可升级版本包含目标版本。
    3. 执行kubeadm upgrade apply v<目标版本号>,等待命令执行完成,期间控制平面组件会滚动重启。
  • 其余控制节点操作:
    同样安装对应版本的kubeadm后,直接执行kubeadm upgrade node即可,不需要执行apply命令。
  • 所有控制节点升级完控制平面组件后,将节点上的kubelet、kubectl包升级到对应目标版本,执行systemctl daemon-reload && systemctl restart kubelet重启kubelet,通过kubectl get nodes确认节点版本更新、状态为Ready。

2. 逐台升级工作节点

禁止同时升级所有工作节点,避免业务大面积中断

  1. 将当前待升级节点标记为不可调度,驱逐节点上的业务Pod:kubectl cordon <节点名> && kubectl drain <节点名> --ignore-daemonsets
  2. 登录该节点,安装对应目标版本的kubeadm,执行kubeadm upgrade node完成节点配置升级。
  3. 将节点上的kubelet、kubectl升级到对应目标版本,重启kubelet服务。
  4. 执行kubectl get nodes确认该节点版本更新、状态回到Ready后,执行kubectl uncordon <节点名>恢复节点调度,等待业务Pod正常调度回该节点后,再升级下一台工作节点。

关键注意事项

  • 每完成一个次版本的全集群升级(所有控制节点、工作节点均升级到当前目标版本,集群状态完全健康),再启动下一个次版本的升级流程,不要在集群存在多版本混合状态时强行跨版本升级。
  • v1.24版本已彻底移除dockershim,如果你当前集群使用Docker作为容器运行时,在升级到v1.24之前必须完成容器运行时切换(例如切换到containerd),否则升级后kubelet会无法正常启动。
  • 升级过程中如果遇到组件启动失败,优先通过journalctl -u kubelet、对应组件的静态Pod日志排查根因,不要跳过错误强行执行后续升级步骤。
  • 每个版本升级前确认对应版本的废弃API列表,提前修改集群中使用了已废弃API的资源配置,避免升级后业务资源无法正常创建。

内容的提问来源于stack exchange,提问作者Richard Rublev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 08:18:27