kubeadm 升级 k8s集群 1.17到1.20

ops/2024/9/25 6:24:15/

云原生学习路线导航页(持续更新中)

本文是 Kubernetes 基础学习 系列文章,主要讲解 使用kubeadm,将kubernetes集群从1.17升级到1.20

kubernetes_3">1.kubernetes一般不要跨大版本升级

  • 一般来说,跨越多个主要版本的升级需要逐个升级每个中间版本
  • 因此,无法直接将kubernetes从1.17直接升级到1.20或更高版本,需要按照1.17–>1.18–>1.19–>1.20的顺序一一进行升级
  • 本文暂时只适用于使用 kubeadm 安装的 kubernetes 集群

kubeadm_8">2.kubeadm升级单节点集群的步骤

如果你的kubernetes集群只有一个节点同时作为masternode,没有其他masternode,可以直接按照下面的步骤升级,否则请看第3部分

kubernetes117118_10">2.1.kubernetes集群从1.17–>1.18

# 查看kubeadm支持的所有版本
yum list --showduplicates kubeadm --disableexcludes=kubernetes# 这里每次升级到中转版本,都升级到当前版本的最新版,当然你也可以自行选择其他版本
# 如这里选择1.18.20-0
yum install -y kubeadm-1.18.20-0 --disableexcludes=kubernetes# 验证kubeadm是否升级成功
kubeadm version# 将kubelet和kubectl也升级一下
yum downgrade kubelet-1.18.20 kubectl-1.18.20# 查看升级计划,如果没有明显的报错,就可以继续
kubeadm upgrade plan# 执行升级
kubeadm upgrade apply v1.18.20# 注:如果上面升级报错:# 报错 - There are kubelets in this cluster that are too old that have these versions,# 则可以添加--force强制升级# kubeadm upgrade apply v1.18.20 --force# 出现这段,代表升级成功
# [upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.18.20". Enjoy!

kubernetes118119_41">2.2.kubernetes集群从1.18–>1.19

# 查看kubeadm支持的所有版本
yum list --showduplicates kubeadm --disableexcludes=kubernetes# 这里每次升级到中转版本,都升级到当前版本的最新版,当然你也可以自行选择其他版本
# 如这里选择1.19.16-0
yum install -y kubeadm-1.19.16-0 --disableexcludes=kubernetes# 验证kubeadm是否升级成功
kubeadm version# 将kubelet和kubectl也升级一下
yum downgrade kubelet-1.19.16 kubectl-1.19.16# 查看升级计划,如果没有明显的报错,就可以继续
kubeadm upgrade plan# 执行升级
kubeadm upgrade apply v1.19.16# 注:如果上面升级报错:# 报错 - There are kubelets in this cluster that are too old that have these versions,# 则可以添加--force强制升级# kubeadm upgrade apply v1.19.16 --force# 出现这段,代表升级成功
# [upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.19.16". Enjoy!

kubernetes119120_73">2.3.kubernetes集群从1.19–>1.20

# 查看kubeadm支持的所有版本
yum list --showduplicates kubeadm --disableexcludes=kubernetes# 这里每次升级到中转版本,都升级到当前版本的最新版,当然你也可以自行选择其他版本
# 如这里选择1.20.15-0
yum install -y kubeadm-1.20.15-0 --disableexcludes=kubernetes# 验证kubeadm是否升级成功
kubeadm version# 将kubelet和kubectl也升级一下
yum downgrade kubelet-1.20.15 kubectl-1.20.15# 查看升级计划,如果没有明显的报错,就可以继续
kubeadm upgrade plan# 执行升级
kubeadm upgrade apply v1.20.15# 注:如果上面升级报错:# 报错 - There are kubelets in this cluster that are too old that have these versions,# 则可以添加--force强制升级# kubeadm upgrade apply v1.20.15 --force# 出现这段,代表升级成功
# [upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.20.15". Enjoy!

kubeadm_104">3.kubeadm升级多节点集群的步骤

下面演示 1.17–>1.18 的过程,升级后,用户可自行再升级到1.19和1.20,只需修改版本号即可

kubeadmmaster_106">3.1.kubeadm升级一个master

  • 如果你有多个master,先选择一个master,按照第2部分的步骤,将1.17升级到1.18
    # 查看kubeadm支持的所有版本
    yum list --showduplicates kubeadm --disableexcludes=kubernetes# 这里每次升级到中转版本,都升级到当前版本的最新版,当然你也可以自行选择其他版本
    # 如这里选择1.18.20-0
    yum install -y kubeadm-1.18.20-0 --disableexcludes=kubernetes# 验证kubeadm是否升级成功
    kubeadm version# 将kubelet和kubectl也升级一下
    yum downgrade kubelet-1.18.20 kubectl-1.18.20# 查看升级计划,如果没有明显的报错,就可以继续
    kubeadm upgrade plan# 执行升级
    kubeadm upgrade apply v1.18.20# 注:如果上面升级报错:# 报错 - There are kubelets in this cluster that are too old that have these versions,# 则可以添加--force强制升级# kubeadm upgrade apply v1.18.20 --force# 出现这段,代表升级成功
    # [upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.18.20". Enjoy!
    

kubeadmmasternode_137">3.2.kubeadm升级其他masternode

# 升级kubeadm
yum install -y kubeadm-1.18.20-0 --disableexcludes=kubernetes# 查看kubeadm升级是否成功
kubeadm version# 查看升级计划
kubeadm upgrade plan# 注意,这里不是apply,而是node
kubeadm upgrade node# 驱逐工作负载
# 将 <node-to-drain> 替换为你要腾空的控制面节点名称
kubectl drain <node-to-drain> --ignore-daemonsets# 升级kubelet和kubectl
yum install -y kubelet-1.18.20-0 kubectl-1.18.20-0 --disableexcludes=kubernetes# 重启kubelet
sudo systemctl daemon-reload
sudo systemctl restart kubelet# 解除节点保护
# 将 <node-to-uncordon> 替换为你的节点名称
kubectl uncordon <node-to-uncordon>

4.参考链接

  • kubernetes官方升级文档
  • https://www.cnblogs.com/dudu/p/14274601.html
  • https://cloudpods.csdn.net/65780f9ab8e5f01e1e449335.html
  • https://www.jianshu.com/p/e8abd105caa9

http://www.ppmy.cn/ops/8438.html

相关文章

[Qt网络编程]之UDP通讯的简单编程实现

hello&#xff01;欢迎大家来到我的Qt学习系列之网络编程之UDP通讯的简单编程实现。希望这篇文章能对你有所帮助&#xff01;&#xff01;&#xff01; 本篇文章的相关知识请看我的上篇文章: http://t.csdnimg.cn/UKyeM 目录 UDP通讯 基于主窗口的实现 基于线程的实现 UDP通讯…

【C语言__函数栈帧的创建和销毁__复习篇9】

目录 前言 一、知识补充 二、分析创建和销毁的过程 三、前言问题回答 前言 本篇主要讨论以下问题&#xff1a; 1. 编译器什么时候为局部变量分配的空间 2. 为什么局部变量的值是随机的 3. 函数是怎么传参的&#xff0c;传参的顺序是怎样的 4. 形参和实参是什么关系 5. 函数…

【Java框架】Mybatis教程(二)——SQL映射及缓存

目录 SQL传参1.单个简单参数使用1使用2 2.多个简单参数2.1使用索引【不推荐】2.2使用Param 3.复杂参数3.1对象3.2集合(Map) Mybatis中的批量操作1.批量查询1.1数组入参1.2List入参1.3Map中有list入参 SQL映射的XML文件resultMapresultMap属性方式1&#xff1a;在查询时&#xf…

高效便捷!解锁阿里云跨账号专线互联的全新实施方案

作者&#xff1a;小丫、琉璃 背景 为持续提升金融云环境的合规标准以及可用区内产品服务的性能和稳定性&#xff0c;阿里云将对杭州地域BCD三个金融云可用区进行基础设施架构升级与改造&#xff0c;对应可用区云产品将于 2024 年后停止服务&#xff0c;需要将业务迁移到新可用…

互连芯片浪潮席卷AI服务器:突破瓶颈,再创辉煌

改变AI服务器&#xff1a;互连芯片技术创新和突破 AI服务器崛起&#xff0c;引领未来创新根据TrendForce数据&#xff0c;AI服务器出货量达130,000台&#xff0c;占服务器总出货量的1%。主要制造商推出生成式AI产品&#xff0c;推动订单激增。ChatGPT等应用的需求持续增长&…

php单文件实现文件批量预览——图片,音频,视频

有一天&#xff0c;无意中发现了一个在线文件预览地址。即那种暴露目录的地址。该目录下清一色的图片。觉得一个个点击进去查看太麻烦了&#xff0c;因此特意写了这个文件预览代码。单php文件&#xff0c;放到站点下运行即可。 1.实用场景 比如一个在线站点文件目录如下&#…

【原创】springboot+mysql疫苗预约管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

【学习】人工智能在软件测试中的作用有哪些

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到各个领域&#xff0c;并发挥着不可或缺的作用。其中&#xff0c;在软件测试方面&#xff0c;AI的应用也愈发普遍。本文将探讨人工智能在软件测试领域的关键作用以及其带来的积极影响。 一、提升测…