Linux二进制部署K8s集群的平滑升级教程

一、升级前的准备工作

  1. 备份集群配置和数据

    • 备份/etc/kubernetes/目录,其中包含Kubernetes集群的配置文件。

    • 备份/var/lib/etcd/目录,其中存储了etcd数据库的数据。

    • 使用etcdctl工具备份etcd数据:

      bash复制

      ETCDCTL_API=3 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版本:

      bash复制

      wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubeadm
      chmod +x kubeadm
      sudo mv kubeadm /usr/local/bin/
      
  2. 验证kubeadm版本

    • 执行kubeadm version命令,确认版本已升级到目标版本。
  3. 检查升级计划

    • 执行kubeadm upgrade plan命令,检查集群是否可以升级,并获取目标版本信息。
  4. 执行控制平面升级

    • 执行kubeadm upgrade apply v1.29.10命令,开始升级控制平面组件。
    • 该命令会自动下载并安装新版本的控制平面组件,包括kube-apiserver、kube-controller-manager、kube-scheduler等。
  5. 腾空master节点

    • 将master节点标记为不可调度,并驱逐所有负载:

      bash复制

      kubectl drain k8s-master --ignore-daemonsets
      
  6. 升级kubelet和kubectl

    • 下载新版本的kubelet和kubectl二进制文件,并替换旧版本文件:

      bash复制

      wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubelet
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的小T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值