首页主机资讯Ubuntu如何升级Kubernetes版本

Ubuntu如何升级Kubernetes版本

时间2025-11-27 15:05:03发布访客分类主机资讯浏览216
导读:Ubuntu上升级 Kubernetes 的标准流程(kubeadm) 一 升级前准备 备份关键数据与配置:优先备份 etcd(建议做快照),以及 /etc/kubernetes/ 目录;etcd 快照示例:ETCDCTL_API=3 e...

Ubuntu上升级 Kubernetes 的标准流程(kubeadm)

一 升级前准备

  • 备份关键数据与配置:优先备份 etcd(建议做快照),以及 /etc/kubernetes/ 目录;etcd 快照示例:ETCDCTL_API=3 etcdctl snapshot save /path/snapshot.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。
  • 检查集群健康:kubectl get nodes、kubectl get pods -A 均为 Ready/Running;确认控制面与 etcd 集群状态正常。
  • 确认升级路径:仅支持按相邻次要版本递进(如 1.23→1.24→1.25),不可跨多个次要版本;kubectl 与集群版本通常建议相差不超过 1 个次要版本。
  • 维护窗口与高可用:选择低峰期;如使用 HAProxy/Keepalived 等前端,确保升级期间能剔除正在维护的 API Server。
  • 容器运行时:自 v1.24 起内置的 dockershim 已移除,需使用 containerd(或 CRI-O);如使用 containerd,建议准备 /etc/crictl.yaml(如设置 criSocket: unix:///var/run/containerd/containerd.sock)。

二 控制平面节点升级(逐个进行)

  • 升级 kubeadm(解除 hold → 安装 → 再加回 hold):
    apt-mark unhold kubeadm & & apt-get update & & apt-get install -y kubeadm=< 目标版本> & & apt-mark hold kubeadm
  • 查看可升级版本与计划:
    apt-cache madison kubeadm | grep < 目标版本> ;kubeadm version;kubeadm upgrade plan
  • 执行控制面升级(按提示选择版本):
    kubeadm upgrade apply v< 目标版本>
  • 腾空节点(维护前务必执行):
    kubectl drain < 控制面节点名> --ignore-daemonsets --force
  • 升级 kubelet 与 kubectl(解除 hold → 安装 → 再加回 hold):
    apt-mark unhold kubelet kubectl & & apt-get update & & apt-get install -y kubelet=< 目标版本> kubectl=< 目标版本> & & apt-mark hold kubelet kubectl
  • 重启 kubelet:
    systemctl daemon-reload & & systemctl restart kubelet
  • 恢复调度:
    kubectl uncordon < 控制面节点名>
  • 多控制面 HA:重复以上步骤处理其余控制面节点,逐台滚动升级。

三 工作节点升级(逐个进行)

  • 腾空节点:
    kubectl drain < 工作节点名> --ignore-daemonsets --force
  • 升级 kubeadm(与控制面目标版本保持一致):
    apt-mark unhold kubeadm & & apt-get update & & apt-get install -y kubeadm=< 目标版本> & & apt-mark hold kubeadm
  • 可选:在节点上执行 kubeadm 节点升级(部分环境可省略,直接升级 kubelet 并重启):
    kubeadm upgrade node
  • 升级 kubelet 与 kubectl:
    apt-mark unhold kubelet kubectl & & apt-get update & & apt-get install -y kubelet=< 目标版本> kubectl=< 目标版本> & & apt-mark hold kubelet kubectl
  • 重启 kubelet:
    systemctl daemon-reload & & systemctl restart kubelet
  • 恢复调度:
    kubectl uncordon < 工作节点名>
  • 验证:kubectl get nodes 应显示新版本且 Ready

四 升级后验证与常见问题

  • 集群状态:
    kubectl get nodes;kubectl get pods -A;确认所有节点 Ready、系统组件与业务 Running
  • 组件日志:
    journalctl -u kubelet -f;必要时查看 kube-apiserver、kube-controller-manager、kube-scheduler 日志。
  • 周边组件:按兼容性升级 CNI(如 Calico/Flannel)Ingress ControllerCoreDNS、监控与日志组件。
  • 常见问题与要点:
    • 禁止跨多个次要版本;
    • 升级前确保 etcd 健康并已完成备份;
    • 升级期间业务可能出现短暂中断,务必提前规划维护窗口与回滚方案;
    • 如从 ≤1.23 升级到 ≥1.24,需确保容器运行时为 containerd 并已正确配置 CRI。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu如何升级Kubernetes版本
本文地址: https://pptw.com/jishu/757927.html
Ubuntu上Kubernetes安全策略有哪些 Kubernetes集群Ubuntu节点故障怎么办

游客 回复需填写必要信息