信息发布→ 登录 注册 退出

LinuxKubernetes集群升级教程_平滑升级与风险控制

发布时间:2026-01-01

点击量:
升级前须检查版本兼容性、备份核心资源与etcd快照;分阶段滚动升级控制平面节点;工作节点需驱逐后升级并观察指标;升级后验证API资源、事件、CRD、Ingress及监控链路。

升级前必须做的三件事

不检查就升级等于埋雷。先确认当前集群版本、各组件兼容性,再备份核心资源对象和etcd数据。用kubectl versionkubeadm version对控制平面与节点版本差异;运行kubectl get nodes -o wide查看kubelet实际版本;用etcdctl snapshot save生成快照并验证可恢复性——这一步跳过,出问题基本只能重建。

分阶段滚动升级控制平面节点

控制平面不能全停,必须逐台升级master节点。先升级主控节点(如master-0),再升级其余master。每台操作顺序固定:
- 执行kubeadm upgrade plan确认可用目标版本
- 运行kubeadm upgrade apply v1.x.y升级kubeadm/kubelet/kubectl
- 重启kubelet:systemctl restart kubelet
- 等待kubectl get nodes显示Ready且VERSION列更新
- 检查核心系统Pod(coredns、etcd、kube-apiserver)是否全部Running且无重启

工作节点升级要避开业务高峰

节点升级本质是驱逐+重启,必须控制影响范围。用kubectl drain --ignore-daemonsets --delete-emptydir-data安全驱逐,确保应用有多个副本且配置了pod disruption budget。升级kubelet后记得systemctl daemon-reload && systemctl restart kubelet,再kubectl uncordon放行调度。建议一次只处理1–2个节点,观察监控指标(CPU、延迟、5xx错误率)稳定后再继续。

升级后必须验证的五项关键检查

版本数字变了不等于跑得稳。重点验证:
- kubectl api-resources输出是否完整,有无API组缺失
- kubectl get events --all-namespaces里有没有Warning或Error事件
- 自定义资源(CRD)对应Operator是否仍在正常协调
- Ingress控制器路由是否生效,Service类型为LoadBalancer的External IP是否重新分配成功
- 日志采集、监控、告警链路(如Prometheus抓取、Fluentd转发)是否持续工作

标签:# etcd  # 每台  # 五项  # 跳过  # 跑得  # 不等于  # 自定义  # 多个  # 分阶段  # 链路  # 重启  # prometheus  # kubelet  # linux  # 事件  # 对象  # delete  # operator  # Error  # red  # kubernetes  # dns  # 路由  # ai  # app  # node  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!