debian

如何升级Debian上的K8S

小樊
39
2025-02-24 09:50:25
栏目: 智能运维

升级Debian上的Kubernetes(K8S)集群涉及多个步骤,以下是详细的升级流程:

升级前的准备工作

  1. 备份集群配置和数据

    • 备份 /etc/kubernetes/ 目录,其中包含Kubernetes集群的配置文件。
    • 备份 /var/lib/etcd/ 目录,其中存储了etcd数据库的数据。使用 etcdctl 工具备份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
      
      如果没有 etcdctl 工具,可通过 yum install -y etcd 安装。
  2. 检查集群状态

    • 确保集群中所有节点的状态正常,所有Pod都在运行状态。
    • 检查集群中是否有未完成的作业或任务,避免升级过程中出现意外。

升级控制平面节点(master节点)

  1. 升级 kubeadm

    • 下载新版本的 kubeadm 二进制文件,并替换旧版本文件。例如,下载1.29.10版本:
      wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubeadm
      chmod +x kubeadm
      sudo mv kubeadm /usr/local/bin/
      
    • 验证 kubeadm 版本:
      kubeadm version
      
    • 检查升级计划:
      kubeadm upgrade plan
      
    • 执行控制平面升级:
      kubeadm upgrade apply v1.29.10
      
      该命令会自动下载并安装新版本的控制平面组件,包括 kube-apiserverkube-controller-managerkube-scheduler 等。
    • 腾空master节点将master节点标记为不可调度,并驱逐所有负载:
      kubectl drain k8s-master --ignore-daemonsets
      
  2. 升级 kubeletkubectl

    • 下载新版本的 kubeletkubectl 二进制文件,并替换旧版本文件:
      wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubelet
      wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubectl
      chmod +x kubelet kubectl
      sudo mv kubelet /usr/local/bin/
      sudo mv kubectl /usr/local/bin/
      
    • 重启 kubelet 服务:
      sudo systemctl daemon-reload
      sudo systemctl restart kubelet
      
    • 解除节点保护将master节点标记为可调度:
      kubectl uncordon k8s-master
      

升级工作节点

  1. 升级 kubeadm

    • 在工作节点上,下载并安装新版本的 kubeadm 二进制文件:
      wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubeadm
      chmod +x kubeadm
      sudo mv kubeadm /usr/local/bin/
      
    • 腾空工作节点将工作节点标记为不可调度,并驱逐所有负载:
      kubectl drain k8s-node1 --ignore-daemonsets
      
  2. 升级 kubeletkubectl

    • 下载并安装新版本的 kubeletkubectl 二进制文件:
      wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubelet
      wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubectl
      chmod +x kubelet kubectl
      sudo mv kubelet /usr/local/bin/
      sudo mv kubectl /usr/local/bin/
      
    • 重启 kubelet 服务:
      sudo systemctl daemon-reload
      sudo systemctl restart kubelet
      
    • 解除节点保护将工作节点标记为可调度:
      kubectl uncordon k8s-node1
      

注意事项

通过以上步骤,你可以安全地在Debian上升级Kubernetes集群。请根据你的具体需求和集群配置调整命令和步骤。

0
看了该问题的人还看了