当前位置: 首页 > news >正文

K8s 平滑升级

前言

一、升级前准备

1️⃣ 查看集群状态(Master 节点)

2️⃣ 备份 etcd 数据(Master 节点)

3️⃣ 备份 kubeadm 配置(Master 节点)

4️⃣ 配置 Kubernetes 国内 YUM 仓库(Master + Node 节点)

5️⃣ 查看可用版本(Master + Node 节点)

二、升级 Master 节点

6️⃣ 安装 kubeadm v1.21(Master01)

7️⃣ 查看升级计划(Master01)

8️⃣ 升级控制平面到 v1.21(Master01)

9️⃣ 升级 Master kubelet 和 kubectl(Master01)

三、升级 Node 节点(逐个执行)

10️⃣ 在 Master01 标记 Node 为不可调度

11️⃣ 在 Node 本地升级 kubeadm/kubelet/kubectl

12️⃣ 在 Master01 恢复 Node 调度

13️⃣ 重复步骤 10-12 对所有 Node 升级

四、升级验证(Master01)

五、升级注意事项

总结

前言

在企业生产环境中,Kubernetes 升级必须保证平滑进行,不能影响业务服务。本篇文章将详细介绍如何将集群从 v1.20 升级到 v1.21,并在每一步明确 操作节点,确保升级安全可控。


一、升级前准备

升级前,必须先做好充分的准备,包括集群状态检查、数据备份和软件仓库配置。

1️⃣ 查看集群状态(Master 节点)

Master01 节点执行:

kubectl version --short
kubectl get nodes
kubectl get pods -A

确认 Master 与 Node 状态正常,Pod 正常运行。

2️⃣ 备份 etcd 数据(Master 节点)

wget https://github.com/etcd-io/etcd/releases/download/v3.5.7/etcd-v3.5.7-linux-amd64.tar.gz
tar -zxvf etcd-v3.5.7-linux-amd64.tar.gz
sudo mv etcd-v3.5.7-linux-amd64/etcdctl /usr/local/bin/
​
ETCDCTL_API=3 etcdctl snapshot save /root/etcd-backup.db \
--endpoints=127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/peer.crt \
--key=/etc/kubernetes/pki/etcd/peer.key

备份 etcd 可以在升级失败时快速恢复集群。

3️⃣ 备份 kubeadm 配置(Master 节点)

cp /etc/kubernetes/admin.conf ~/admin.conf.backup

4️⃣ 配置 Kubernetes 国内 YUM 仓库(Master + Node 节点)

在 Master01、Node01、Node02 节点执行:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
​
yum clean all
yum makecache

5️⃣ 查看可用版本(Master + Node 节点)

yum list kubeadm --showduplicates | sort -r

本次升级选择 v1.21.14 作为目标版本。


二、升级 Master 节点

Master 节点是控制平面,升级必须小心操作。

6️⃣ 安装 kubeadm v1.21(Master01)

yum install -y kubeadm-1.21.14-0

7️⃣ 查看升级计划(Master01)

kubeadm upgrade plan

确认可升级版本和依赖组件。

8️⃣ 升级控制平面到 v1.21(Master01)

kubeadm upgrade apply v1.21.14

9️⃣ 升级 Master kubelet 和 kubectl(Master01)

yum install -y kubelet-1.21.14-0 kubectl-1.21.14-0
systemctl daemon-reload
systemctl restart kubelet

至此,Master 节点控制平面已经成功升级到 v1.21。


三、升级 Node 节点(逐个执行)

Node 节点升级需要确保 Pod 不丢失,因此要配合 Master 执行 cordon/drain

10️⃣ 在 Master01 标记 Node 为不可调度

kubectl cordon <node-name>
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data

⚠ 注意:--delete-local-data 已废弃,新版本使用 --delete-emptydir-data

11️⃣ 在 Node 本地升级 kubeadm/kubelet/kubectl

yum install -y kubeadm-1.21.14-0 kubelet-1.21.14-0 kubectl-1.21.14-0
systemctl daemon-reload
systemctl restart kubelet

12️⃣ 在 Master01 恢复 Node 调度

kubectl uncordon <node-name>

13️⃣ 重复步骤 10-12 对所有 Node 升级

逐个节点升级,保证业务 Pod 在其他节点可用,避免服务中断。


四、升级验证(Master01)

升级完成后,验证集群和 Pod 状态:

kubectl get nodes
kubectl get pods -A
kubectl version --short
  • 所有 Master/Node 节点显示 v1.21

  • Pod 正常运行,无异常状态


五、升级注意事项

  1. 逐个节点升级,保证服务不中断。

  2. CNI 插件:升级前确认兼容 v1.21。

  3. PodDisruptionBudget:升级 Node 时可能需要临时调整或删除。

  4. 备份:升级前务必备份 etcd 和 kubeadm 配置。

  5. 节点操作总结

    • Master 节点:执行 kubeadm 升级 + kubelet/kubectl 升级

    • Node 节点:执行软件升级和 kubelet 重启

    • **Master 执行 cordon/drain/uncordon 管理 Pod 调度

    • 跨多版本升级需要逐步升级,如1.20升级到1.22则需要1.20→1.21→1.22,以此类推


总结

通过以上步骤,你可以平滑地将 Kubernetes 集群从 v1.20 升级到 v1.21,保证服务持续可用,并为后续升级到更高版本打下基础。

http://www.dtcms.com/a/504043.html

相关文章:

  • 哪个网站可以查到个人名下公司虾皮跨境电商注册多少钱
  • [C++面向对象语言第三大特性] :多态
  • 网站建设流程要多少钱新开传奇网站999
  • 优化网站推广网站广东网站建设找哪家
  • 均值回归(配对交易)策略
  • 【每日英语(1019)】相关文章:政要新闻,健身,法案,漫画
  • 网站建设初步课程介绍济南国画网站济南网站建设公司
  • 【linux学习篇】多线程之间资源共享---共享内存方式
  • 除了有效市场假说,还有哪些理论能更好的解释经济或者金融活动
  • 咨询手机网站建设平台400电话网站源码
  • 【阿里巴巴大数据之路】事实表设计
  • 建设网站之前都需要准备什么问题广东vs北京首钢
  • 四川住房城乡建设厅网站企业模拟网站建设
  • 多媒体标签全解析:img、audio、video标签详解
  • 【139套财务会计excel模板】免费分享
  • 免费网站如何被百度收录wordpress图片特效
  • 网站框架有哪些网站页面优化怎么做
  • 虚幻引擎虚拟制片入门教程 之 Sequencer 常用技巧
  • 个人网站备案简介怎么写企业网站建设的征求意见
  • 如何做网络营销推广工作做外贸seo优化的上市公司
  • 怎样建网站买东西电商网站管理系统模板下载
  • ping一下新浪网站怎么做树莓派wordpress博客
  • 网站建设服务器租用找网站的方法
  • 解码Linux文件IO之LCD屏原理及应用
  • Java集合体系 —— Map篇
  • 大连网站制作代理价格北京小程序开发价格
  • 内蒙古建设安全监督网站东道 网站建设
  • 跳格子游戏(1)
  • 谈谈你对Mysql 锁的理解
  • 网站开发有哪些模块想做分销商有什么平台