首页主机资讯如何在centos上进行k8s版本升级

如何在centos上进行k8s版本升级

时间2026-01-19 18:19:05发布访客分类主机资讯浏览693
导读:在 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 场景建议串行):
    1. 腾空节点:kubectl drain --ignore-daemonsets
    2. 升级 kubeadm:yum install -y kubeadm- --disableexcludes=kubernetes
    3. 检查升级计划:kubeadm upgrade plan
    4. 执行升级:kubeadm upgrade apply
    5. 升级 kubelet/kubectl:yum install -y kubelet- kubectl- --disableexcludes=kubernetes & & systemctl daemon-reload & & systemctl restart kubelet
    6. 解除封锁:kubectl uncordon
  • 说明:kubeadm 会更新 kube-apiserver/controller-manager/scheduler 的静态清单并重建相关 Pod,同时更新 kube-proxy DaemonSet 配置。

三 工作节点升级 Worker

  • 逐个节点滚动升级:
    1. 腾空节点:kubectl drain --ignore-daemonsets
    2. 升级 kubeadm:yum install -y kubeadm- --disableexcludes=kubernetes
    3. 执行节点升级:kubeadm upgrade node
    4. 升级 kubelet/kubectl:yum install -y kubelet- kubectl- --disableexcludes=kubernetes & & systemctl daemon-reload & & systemctl restart kubelet
    5. 解除封锁: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
centos k8s资源分配原则 centos k8s兼容性问题解析

游客 回复需填写必要信息