如何在centos上进行k8s版本升级
导读:在 CentOS 上升级 Kubernetes 的标准流程 一 升级前准备 备份关键数据与配置:优先备份 etcd(如:etcdctl snapshot save …)、以及 /etc/kubernetes/ 配置目录与 kubeconf...
在 CentOS 上升级 Kubernetes 的标准流程
一 升级前准备
- 备份关键数据与配置:优先备份 etcd(如:etcdctl snapshot save …)、以及 /etc/kubernetes/ 配置目录与 kubeconfig,以便回滚。
- 检查集群健康:确保控制面与节点均为 Ready,核心组件 Pod 为 Running,无大面积异常。
- 确认升级路径:仅支持按相邻次要版本递进升级(如 1.24 → 1.25),不可跨多个大版本;如需跨大版本,需逐步升级。
- 配置仓库与版本锁定:在所有节点配置 Kubernetes YUM 仓库,并按目标版本精确安装(如 kubeadm-)。
- 维护窗口与高可用:选择低峰时段,控制面使用 HAProxy/Keepalived 的场景确保 API 转发健康。
二 控制平面升级 Master
- 逐台升级(HA 场景建议串行):
- 腾空节点:kubectl drain --ignore-daemonsets
- 升级 kubeadm:yum install -y kubeadm- --disableexcludes=kubernetes
- 检查升级计划:kubeadm upgrade plan
- 执行升级:kubeadm upgrade apply
- 升级 kubelet/kubectl:yum install -y kubelet- kubectl- --disableexcludes=kubernetes & & systemctl daemon-reload & & systemctl restart kubelet
- 解除封锁:kubectl uncordon
- 说明:kubeadm 会更新 kube-apiserver/controller-manager/scheduler 的静态清单并重建相关 Pod,同时更新 kube-proxy DaemonSet 配置。
三 工作节点升级 Worker
- 逐个节点滚动升级:
- 腾空节点:kubectl drain --ignore-daemonsets
- 升级 kubeadm:yum install -y kubeadm- --disableexcludes=kubernetes
- 执行节点升级:kubeadm upgrade node
- 升级 kubelet/kubectl:yum install -y kubelet- kubectl- --disableexcludes=kubernetes & & systemctl daemon-reload & & systemctl restart kubelet
- 解除封锁:kubectl uncordon
- 建议一次只升级少量节点,观察业务与节点状态后再继续。
四 升级后验证与常见问题
- 版本与状态核验:
- kubectl version --short(控制面与客户端版本)
- kubectl get nodes -o wide(所有节点 Ready,版本一致或符合预期)
- kubectl get pods -A(无 CrashLoopBackOff/Error)
- 组件日志:journalctl -u kubelet -f、journalctl -u kube-apiserver -f
- 周边组件:按兼容性升级 CNI/CSI/Ingress/Dashboard/监控 等;若涉及 API 版本变更,使用 kubectl convert 进行清单转换后再 apply。
- 常见问题与处理:
- 升级命令报找不到版本:用 yum list kubeadm.x86_64 --showduplicates 确认仓库中可用版本,再精确安装。
- 节点无法驱逐:确认副本数、污点与容忍、资源配额,必要时临时扩容或调整调度策略。
- 升级中断/失败:基于备份与快照回滚,或回退到上一版本的 kubeadm/kubelet 包并重启服务。
五 常用命令清单
- 备份与配置:
- etcd 快照:etcdctl snapshot save /data/etcd/etcd_bak.db --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key
- 备份配置:cp -r /etc/kubernetes /etc/kubernetes_backup
- 仓库与版本:
- 查看可用版本:yum list kubeadm.x86_64 --showduplicates
- 精确安装:yum install -y kubeadm- kubelet- kubectl- --disableexcludes=kubernetes
- 节点维护:
- 封锁/解除:kubectl cordon / kubectl uncordon
- 驱逐:kubectl drain --ignore-daemonsets
- 升级动作:
- 规划:kubeadm upgrade plan
- 控制面:kubeadm upgrade apply
- 工作节点:kubeadm upgrade node
- 服务与日志:
- 重启:systemctl daemon-reload & & systemctl restart kubelet
- 日志:journalctl -u kubelet -f
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在centos上进行k8s版本升级
本文地址: https://pptw.com/jishu/786049.html
