温馨提示×

Linux如何升级已安装的K8S

小樊
44
2025-08-25 15:00:31
栏目: 智能运维

Linux升级已安装的K8S步骤如下(基于kubeadm工具):

一、升级前准备

  1. 备份数据
    • 备份配置文件:cp -r /etc/kubernetes /etc/kubernetes.bak
    • 备份etcd数据:etcdctl snapshot save /data/etcd/etcd_bak.db
  2. 检查集群状态
    • 确保所有节点状态正常:kubectl get nodes
    • 确保无未完成的Pod或任务
  3. 确认版本兼容性
    • 遵循“次版本升级”原则,不可跳过版本(如1.20→1.21,不可1.20→1.22)

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

  1. 升级kubeadm
    • 下载目标版本kubeadm:
      wget https://dl.k8s.io/release/v1.x.x/bin/linux/amd64/kubeadm
    • 替换旧版本:mv kubeadm /usr/local/bin/ && chmod +x /usr/local/bin/kubeadm
  2. 执行升级计划
    • 检查可升级版本:kubeadm upgrade plan
    • 应用升级:kubeadm upgrade apply v1.x.x(会自动升级控制平面组件)
  3. 升级kubelet和kubectl
    • 下载对应版本二进制文件并替换:
      wget https://dl.k8s.io/release/v1.x.x/bin/linux/amd64/kubelet
      wget https://dl.k8s.io/release/v1.x.x/bin/linux/amd64/kubectl
    • 重启kubelet:systemctl restart kubelet

三、升级工作节点

  1. 逐个升级节点
    • 先对节点执行kubectl drain <节点名> --ignore-daemonsets
    • 升级kubeadm、kubelet、kubectl(步骤同Master节点)
    • 最后执行kubectl uncordon <节点名>恢复节点调度

四、升级后验证

  • 检查集群状态:kubectl get nodes(确保所有节点状态为Ready)
  • 验证组件版本:kubectl version

注意事项

  • 若使用CNI插件(如Calico),需根据插件文档单独升级。
  • 生产环境建议先在测试环境验证升级流程。

参考来源:

0