如何升级Ubuntu Kubernetes版本
导读:Ubuntu 上使用 kubeadm 升级 Kubernetes 的实操指南 一 升级前准备与版本规则 选择维护窗口并做好影响评估:升级期间可能出现短暂的 API Server 访问中断,已运行工作负载一般不受影响;避免对集群执行关机、重...
Ubuntu 上使用 kubeadm 升级 Kubernetes 的实操指南
一 升级前准备与版本规则
- 选择维护窗口并做好影响评估:升级期间可能出现短暂的 API Server 访问中断,已运行工作负载一般不受影响;避免对集群执行关机、重启、删除节点等操作。升级前确认未执行高危操作(如本地修改节点配置、通过外部负载均衡修改监听器配置等)。如集群使用云厂商托管控制面,遵循其控制台提示的升级约束与限制。
- 版本与兼容性检查:仅支持跨一个大版本升级(如 1.23.x → 1.24.x),不支持跨多个大版本;也不支持大版本内跨小版本的跳跃升级。升级前阅读目标版本的发布说明,排查是否使用了将被废弃的 API,避免升级后调用失败。
- 备份关键数据与配置:对 etcd 做快照(示例:ETCDCTL_API=3 etcdctl snapshot save …),并备份集群配置与关键应用清单,以便异常时回滚。
二 控制平面节点升级步骤
- 逐台升级控制面节点(一次一台),确保当前节点持有 /etc/kubernetes/admin.conf。
- 升级 kubeadm 并校验版本:
- apt-mark unhold kubeadm & & apt-get update & & apt-get install -y kubeadm=< 目标版本> -00 & & apt-mark hold kubeadm
- kubeadm version(应显示新版本)
- 检查升级计划并应用:
- kubeadm upgrade plan(查看可升级版本与变更)
- kubeadm upgrade apply v< 目标版本> (按提示完成控制面组件升级)
- 升级 kubelet 与 kubectl 并重启:
- apt-get install -y kubelet=< 目标版本> -00 kubectl=< 目标版本> -00
- systemctl daemon-reload & & systemctl restart kubelet
- 验证控制面状态:
- kubectl get nodes(该节点版本应变为新版本且 Ready)
- kubectl get pods -n kube-system(核心组件 Running)
说明:kubeadm 会生成新版本的静态 Pod 清单并触发控制面组件滚动更新,无需手动 stop/start 这些组件。
三 工作节点升级步骤
- 逐台升级工作节点(一次一台),腾挪业务或设置 cordon/drain 避免业务中断:
- kubectl drain --ignore-daemonsets --delete-emptydir-data
- 升级 kubeadm、kubelet、kubectl(与主控一致的目标版本):
- apt-mark unhold kubeadm & & apt-get update & & apt-get install -y kubeadm=< 目标版本> -00 & & apt-mark hold kubeadm
- apt-get install -y kubelet=< 目标版本> -00 kubectl=< 目标版本> -00
- systemctl daemon-reload & & systemctl restart kubelet
- 使节点恢复可调度:
- kubectl uncordon
- 验证节点状态:
- kubectl get nodes(节点版本与新版本一致且 Ready)
提示:工作节点升级期间,被驱逐的 Pod 会在其他节点重建,确保集群资源充足与副本数合理。
- kubectl get nodes(节点版本与新版本一致且 Ready)
四 升级后验证与回滚
- 集群与组件状态:
- kubectl get nodes -owide(版本一致、Ready)
- kubectl get pods -A(Running、无 CrashLoopBackOff)
- kubectl version --short(客户端与服务端版本)
- 业务与存储检查:确认应用对外服务正常、持久卷与挂载无异常、废弃 API 已替换。
- 回滚策略:如升级异常,优先基于升级前的 etcd 快照与备份进行恢复;若升级成功后又执行了其他变更(如变更规格/配置),可能无法通过备份回滚,需谨慎评估。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何升级Ubuntu Kubernetes版本
本文地址: https://pptw.com/jishu/748920.html
