K8s集群版本升级完整教程|标准升级流程+实操命令+核心注意事项
前言Kubernetes 集群需要定期版本升级以此获取新功能、修复安全漏洞、优化集群稳定性是运维工程师核心日常维护操作。很多新手升级集群容易踩坑跨版本升级、未排空节点、组件版本不统一、无备份导致故障无法回滚尤其困惑为什么升级流程里两次操作 kubeadm到底有什么区别本文结合官方标准升级流程、可直接复制的实操命令、面试满分答题模板手把手讲透 K8s 集群 Master 节点升级全流程重点拆解两次 kubeadm 操作的核心差异兼顾实操落地与面试备考需求。一、K8s 升级核心原则逐级小版本升级禁止跨大版本跳跃如 1.31→1.33避免组件兼容性报错、集群崩溃。固定升级顺序kubeadm工具→ 控制平面集群核心→ kubelet/kubectl节点 / 客户端。先控后工、滚动升级Master 优先升级Worker 逐台操作不中断业务。备份优先、可回滚升级前备份 etcd 与核心配置规避故障风险。组件版本统一全集群 kubeadm、kubelet、kubectl 版本必须完全一致。二、K8s Master 主节点完整升级流程以下为生产、面试通用标准步骤以1.33.0→1.33.1为例可直接复制执行。步骤 1查询可升级版本apt list kubeadm -a作用查看当前源中所有 kubeadm 版本确认目标版本1.33.1-1.1是否存在。步骤 2封锁 Master 节点禁止新 Pod 调度kubectl cordon cka-master kubectl get nodes作用标记节点不可调度升级期间无新 Pod 调度到 Master避免冲突。步骤 3排空节点业务 Pod保障业务不中断kubectl drain cka-master --delete-emptydir-data --ignore-daemonsets作用驱逐普通 Pod 到其他节点忽略守护进程、清空临时数据无业务残留。步骤 4升级 kubeadm第一次升级工具本身# 解锁版本锁定 apt-mark unhold kubeadm apt-get update # 安装指定版本kubeadm apt install kubeadm1.33.1-1.1 -y # 重新锁定防止自动更新 apt-mark hold kubeadm # 校验版本 kubeadm version核心作用第一次操作操作系统层面升级 kubeadm 二进制工具仅更新本地/usr/bin/kubeadm命令不改动集群任何组件apiserver、controller-manager 仍是旧版。步骤 5检查集群升级可行性kubeadm upgrade plan作用用新版 kubeadm 检测集群状态、版本兼容性预判升级可行性提前暴露异常。步骤 6升级 Master 控制平面第二次用工具升级集群# 再次解锁kubeadm防止锁定报错 apt-mark unhold kubeadm # 升级核心组件跳过etcd kubeadm upgrade apply v1.33.1 --etcd-upgradefalse核心作用第二次操作用新版 kubeadm 指挥集群升级真正更新控制平面核心组件kube-apiserver、kube-controller-manager、kube-scheduler、CoreDNS、kube-proxy更新静态 Pod 配置同步集群状态。步骤 7升级 kubelet、kubectl 客户端工具apt-mark unhold kubelet kubectl apt install kubelet1.33.1-1.1 kubectl1.33.1-1.1 -y # 统一锁定所有组件版本 apt-mark hold kubelet kubectl kubeadm作用kubelet 是节点代理kubectl 是客户端必须与控制平面版本一致保证通信兼容。步骤 8重启 kubelet 服务生效systemctl daemon-reload systemctl restart kubelet.service kubectl get nodes作用加载新版 kubelet 配置使节点正常接入集群。步骤 9解除节点封锁恢复集群调度kubectl uncordon cka-master kubectl get nodes作用Master 恢复可调度状态正常管理集群。步骤 10逐台升级所有 Worker 工作节点所有 Worker 节点重复步骤 2-9封锁→排空→升级组件→重启→解除封锁禁止批量同时升级保证集群始终有可用节点承载业务。三、面试高频两次 kubeadm 操作的区别必背一句话总结第一次升级 kubeadm 工具本身第二次用新版 kubeadm 升级集群控制平面两次操作对象、范围、目的完全不同不是重复详细区别面试直接答第一次apt install kubeadmxxx操作对象本地操作系统的 kubeadm 二进制工具范围仅 Master 节点本地目的把 “升级指挥工具” 升到目标版本结果kubeadm --version 显示新版集群组件未变第二次kubeadm upgrade apply vxxx操作对象K8s 集群控制平面范围整个 Master 核心组件目的用新版工具执行集群升级结果apiserver、controller-manager 等更新为新版核心逻辑面试加分先升工具、再升集群只有 kubeadm 工具先到目标版本才能正确指挥集群完成升级是官方强制顺序缺一不可。四、升级核心注意事项面试必背 生产避坑版本规范严格逐级小版本升级禁止跨大版本跳跃。数据备份优先升级前备份 etcd 数据库、集群核心配置保障可回滚。业务高可用Master 先 cordondrainWorker 逐台滚动避免业务中断。组件版本统一全集群 kubeadm、kubelet、kubectl 版本必须一致。插件兼容性提前校验 CoreDNS、Ingress、监控等插件兼容性。规避冲突升级期间暂停集群资源创建 / 删除操作。预留回滚制定回滚方案异常时快速退回稳定版本。五、面试满分标准答案直接默写1. K8s Master 节点升级步骤先查询 kubeadm 可用版本确认目标版本封锁 Master 节点禁止新 Pod 调度排空节点现有业务 Pod第一次操作升级 kubeadm 工具本身用新版 kubeadm 检查升级可行性第二次操作用 kubeadm 升级集群控制平面跳过 etcd同步升级 kubelet 和 kubectl重启 kubelet 生效解除节点封锁恢复调度最后逐台升级 Worker 节点。2. 两次 kubeadm 操作的区别第一次是操作系统层面升级 kubeadm 二进制工具仅更新本地命令不改动集群组件第二次是用新版 kubeadm 执行集群控制平面升级更新 apiserver、controller-manager 等核心组件。两次操作对象、范围、目的不同遵循 “先升工具、再升集群” 的官方顺序。3. 升级注意事项升级需逐级小版本迭代升级前备份 etcd 与核心配置采用滚动升级提前迁移业务 Pod保证组件版本统一校验插件兼容性升级期间暂停资源操作预留回滚方案保障业务稳定。六、总结K8s Master 升级核心逻辑工具先行、集群跟进、滚动安全、版本统一。两次 kubeadm 操作不是重复而是 “工具升级→集群升级” 的必要两步是官方标准流程。掌握这套流程和面试要点既能搞定生产升级也能轻松应对面试考察