首页主机资讯在Debian上如何更新K8s版本

在Debian上如何更新K8s版本

时间2025-10-21 21:12:04发布访客分类主机资讯浏览456
导读:在Debian上更新K8s版本的步骤(以kubeadm部署为例) 一、升级前准备 备份关键数据 备份集群配置(/etc/kubernetes/目录)和etcd数据(etcd是K8s的核心存储组件),防止升级失败导致数据丢失。etcd备份...

在Debian上更新K8s版本的步骤(以kubeadm部署为例)

一、升级前准备

  1. 备份关键数据
    备份集群配置(/etc/kubernetes/目录)和etcd数据(etcd是K8s的核心存储组件),防止升级失败导致数据丢失。etcd备份命令示例:

    ETCDCTL_API=3 etcdctl --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 snapshot save /data/etcd/etcd_bak.db
    
  2. 检查集群健康状态
    确保集群所有节点(Master/Worker)状态为Ready,无CrashLoopBackOffError的Pod:

    kubectl get nodes                  # 检查节点状态
    kubectl get pods --all-namespaces --field-selector=status.phase!=Running  # 检查异常Pod
    
  3. 确认升级路径
    Kubernetes仅支持相邻小版本递进升级(如1.24→1.25),禁止跨大版本跳跃(如1.24→1.26)。通过kubectl version查看当前版本,在官方文档中确认目标版本的兼容性。

二、升级控制平面节点(Master节点)

  1. 更新系统包
    确保Debian系统和软件包为最新状态:

    sudo apt update &
        &
         sudo apt upgrade -y
    
  2. 升级kubeadm工具
    kubeadm是升级控制平面的核心工具,需先升级到目标版本(以1.25为例):

    sudo apt install -y kubeadm=1.25.0-00
    sudo apt-mark hold kubeadm  # 锁定版本,避免意外升级
    
  3. 检查升级计划
    查看当前集群可升级的版本及需要修改的组件:

    sudo kubeadm upgrade plan
    

    输出会显示目标版本(如v1.25.0)和需要升级的组件(如kube-apiserverkube-controller-manager)。

  4. 执行控制平面升级
    应用升级命令,自动更新控制平面组件并生成新的kubelet配置:

    sudo kubeadm upgrade apply v1.25.0
    
  5. 升级kubelet和kubectl
    更新Master节点上的kubelet和kubectl,确保与集群版本一致:

    sudo apt install -y kubelet=1.25.0-00 kubectl=1.25.0-00
    sudo systemctl daemon-reload
    sudo systemctl restart kubelet
    
  6. 解除Master节点保护
    升级完成后,允许Master节点重新调度Pod:

    kubectl uncordon k8s-master  # 替换为你的Master节点名称
    

三、升级工作节点(Worker节点)

  1. 逐个升级工作节点
    每次仅升级1个节点,确保集群剩余节点能承载业务流量。

  2. 腾空节点
    将节点标记为不可调度,并驱逐所有Pod(--ignore-daemonsets忽略DaemonSet管理的Pod,--delete-emptydir-data删除EmptyDir数据):

    kubectl cordon k8s-node1  # 替换为你的Worker节点名称
    kubectl drain k8s-node1 --ignore-daemonsets --delete-emptydir-data
    
  3. 升级工作节点组件
    在工作节点上重复“升级kubeadm、kubelet、kubectl”的步骤(与Master节点一致):

    sudo apt install -y kubeadm=1.25.0-00 kubelet=1.25.0-00 kubectl=1.25.0-00
    sudo systemctl daemon-reload
    sudo systemctl restart kubelet
    
  4. 执行节点升级
    使用kubeadm升级节点,同步新版本配置:

    sudo kubeadm upgrade node
    
  5. 恢复节点调度
    升级完成后,允许节点重新接收Pod调度:

    kubectl uncordon k8s-node1
    
  6. 验证节点状态
    确认节点已恢复Ready状态:

    kubectl get nodes
    

四、升级后验证

  1. 检查集群状态
    确保所有节点(Master/Worker)状态为Ready,核心组件(如kube-apiserverkube-controller-manager)运行正常:

    kubectl get nodes
    kubectl get pods -n kube-system
    
  2. 测试业务功能
    访问集群内的业务Pod,验证服务是否正常(如通过curl访问应用接口)。

  3. 清理旧资源
    删除升级过程中生成的临时备份文件(如etcd备份),释放集群资源。

注意事项

  • 版本兼容性:升级前确认容器运行时(如containerd)、网络插件(如Calico)、Ingress控制器(如Nginx Ingress)与目标K8s版本兼容。
  • 滚动升级:工作节点需逐个升级,避免全量升级导致业务中断。
  • 回滚预案:若升级失败,可通过kubeadm upgrade revert命令回滚到上一个版本,并恢复etcd备份数据。

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


若转载请注明出处: 在Debian上如何更新K8s版本
本文地址: https://pptw.com/jishu/731561.html
ubuntu ifconfig怎样设置默认网关 ubuntu ifconfig怎样配置DNS服务器

游客 回复需填写必要信息