news 2026/6/10 4:08:16

K8s集群版本升级完整教程|标准升级流程+实操命令+核心注意事项

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
K8s集群版本升级完整教程|标准升级流程+实操命令+核心注意事项

前言

Kubernetes 集群需要定期版本升级,以此获取新功能、修复安全漏洞、优化集群稳定性,是运维工程师核心日常维护操作。很多新手升级集群容易踩坑:跨版本升级、未排空节点、组件版本不统一、无备份导致故障无法回滚;尤其困惑:为什么升级流程里两次操作 kubeadm?到底有什么区别?

本文结合官方标准升级流程、可直接复制的实操命令、面试满分答题模板,手把手讲透 K8s 集群 Master 节点升级全流程,重点拆解两次 kubeadm 操作的核心差异,兼顾实操落地与面试备考需求。

一、K8s 升级核心原则

  1. 逐级小版本升级:禁止跨大版本跳跃(如 1.31→1.33),避免组件兼容性报错、集群崩溃。
  2. 固定升级顺序:kubeadm(工具)→ 控制平面(集群核心)→ kubelet/kubectl(节点 / 客户端)。
  3. 先控后工、滚动升级:Master 优先升级,Worker 逐台操作,不中断业务。
  4. 备份优先、可回滚:升级前备份 etcd 与核心配置,规避故障风险。
  5. 组件版本统一:全集群 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 kubeadm=1.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-upgrade=false

核心作用(第二次操作)用新版 kubeadm 指挥集群升级,真正更新控制平面核心组件:kube-apiserver、kube-controller-manager、kube-scheduler、CoreDNS、kube-proxy;更新静态 Pod 配置,同步集群状态。

步骤 7:升级 kubelet、kubectl 客户端工具

apt-mark unhold kubelet kubectl apt install kubelet=1.33.1-1.1 kubectl=1.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 升级集群控制平面,两次操作对象、范围、目的完全不同,不是重复!

详细区别(面试直接答)

  1. 第一次:apt install kubeadm=xxx
  • 操作对象:本地操作系统的 kubeadm 二进制工具
  • 范围:仅 Master 节点本地
  • 目的:把 “升级指挥工具” 升到目标版本
  • 结果:kubeadm --version 显示新版,集群组件未变
  1. 第二次:kubeadm upgrade apply vxxx
  • 操作对象:K8s 集群控制平面
  • 范围:整个 Master 核心组件
  • 目的:用新版工具执行集群升级
  • 结果:apiserver、controller-manager 等更新为新版

核心逻辑(面试加分)

先升工具、再升集群:只有 kubeadm 工具先到目标版本,才能正确指挥集群完成升级,是官方强制顺序,缺一不可。

四、升级核心注意事项(面试必背 + 生产避坑)

  1. 版本规范:严格逐级小版本升级,禁止跨大版本跳跃。
  2. 数据备份优先:升级前备份 etcd 数据库、集群核心配置,保障可回滚。
  3. 业务高可用:Master 先 cordon+drain,Worker 逐台滚动,避免业务中断。
  4. 组件版本统一:全集群 kubeadm、kubelet、kubectl 版本必须一致。
  5. 插件兼容性:提前校验 CoreDNS、Ingress、监控等插件兼容性。
  6. 规避冲突:升级期间暂停集群资源创建 / 删除操作。
  7. 预留回滚:制定回滚方案,异常时快速退回稳定版本。

五、面试满分标准答案(直接默写)

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 操作不是重复,而是 “工具升级→集群升级” 的必要两步,是官方标准流程。掌握这套流程和面试要点,既能搞定生产升级,也能轻松应对面试考察!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 4:06:24

24. 模板方法模式(Template Method Pattern)

24. 模板方法模式(Template Method Pattern)分类: 行为型模式 热门度: ★★★★☆ 难度: ★★☆☆☆📖 概念 模板方法模式在基类中定义一个算法的骨架,将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下…

作者头像 李华
网站建设 2026/6/10 3:56:17

基于 Simulink 的新能源商用车主驱电机弱磁扩速控制策略仿真实战教程

目录 一、 核心原理:突破电压极限的“降维打击” 二、 Simulink 模型架构与搭建 第一步:搭建商用车 FOC 动力骨架 第二步:构建弱磁电压监控与 PI 补偿(核心) 三、 仿真场景设置与结果解读 四、 进阶:效率优化与自适应弱磁 五、 避坑指南与工程设计建议 这是一份基…

作者头像 李华
网站建设 2026/6/10 3:53:21

【花雕学编程】Arduino BLDC 之地震废墟搜索机器人

基于Arduino BLDC的地震废墟搜索机器人是一种针对灾后复杂环境的智能化解决方案,以下从专业视角详细解析其主要特点、应用场景及关键注意事项: 一、主要特点 强环境适应性与高机动性 全地形移动平台:采用履带式或足轮混合式底盘,…

作者头像 李华
网站建设 2026/6/10 3:46:28

Python 描述符专项练习:6 道编程题从入门到精通

配套专栏:Python 全栈修炼之路 第 15 篇《描述符与属性访问控制》 难度分布:⭐ → ⭐⭐ → ⭐⭐ → ⭐⭐⭐ → ⭐⭐⭐ → ⭐⭐⭐⭐ 核心覆盖:__get__/__set__/__delete__、数据/非数据描述符、属性查找优先级、property 本质、弱引用存储、ORM 实战 前言 描述符是 Python 属…

作者头像 李华
网站建设 2026/6/10 3:46:18

Exercise003_Even_or_Odd

Exercise 3: Even or Odd 题目重现 原题标题:Even or Odd 原题描述:Write a program that asks the user to enter a number and then determines whether the number is even or odd. 中文说明:编写一个程序,要求用户输入一个数字…

作者头像 李华