Centos7升级K8S集群

Centos7升级K8S集群

适用于使用kubeadm部署的k8s环境。

Kubernetes 版本以 x.y.z 表示,其中 x 是主要版本, y 是次要版本,z 是补丁版本。

升级时不可以跳过次版本。 例如,你只能从 1.y 升级到 1.y+1,而不能从 1.y 升级到 1.y+2。

版本偏差说明:

https://kubernetes.io/zh-cn/releases/version-skew-policy/

注意

生产环境升级之前注意备份数据。为了方便恢复,如果是虚拟机环境可以借助快照进行恢复。

本次操作升级的为一个单节点的K8S环境,主要步骤如下:

1. 升级kubeadm

# 当前版本
[root@k8s ~]# kubectl get node
NAME   STATUS   ROLES                  AGE     VERSION
k8s    Ready    control-plane,master   3d18h   v1.22.0# 查看可用的kubeadm版本。
[root@k8s ~]# yum list --showduplicates kubeadm --disableexcludes=kubernetes# 升级kubeadm到1.23.17-0版本。
[root@k8s ~]# yum install -y kubeadm-1.23.17-0 --disableexcludes=kubernetes# kubeadm upgrade plan验证升级计划,COMPONENT CURRENT TARGET :告诉我们组件可以从当前版本升级到的版本。
[root@k8s ~]# kubeadm upgrade plan
[upgrade/config] Making sure the configuration is correct:
[upgrade/config] Reading configuration from the cluster...
[upgrade/config] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[preflight] Running pre-flight checks.
[upgrade] Running cluster health checks
[upgrade] Fetching available versions to upgrade to
[upgrade/versions] Cluster version: v1.22.0
[upgrade/versions] kubeadm version: v1.23.17
I0615 16:48:13.655864   54942 version.go:256] remote version is much newer: v1.30.2; falling back to: stable-1.23
[upgrade/versions] Target version: v1.23.17
[upgrade/versions] Latest version in the v1.22 series: v1.22.17Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT   CURRENT       TARGET
kubelet     1 x v1.22.0   v1.22.17Upgrade to the latest version in the v1.22 series:COMPONENT                 CURRENT   TARGET
kube-apiserver            v1.22.0   v1.22.17
kube-controller-manager   v1.22.0   v1.22.17
kube-scheduler            v1.22.0   v1.22.17
kube-proxy                v1.22.0   v1.22.17
CoreDNS                   v1.8.4    v1.8.6
etcd                      3.5.0-0   3.5.6-0You can now apply the upgrade by executing the following command:kubeadm upgrade apply v1.22.17_____________________________________________________________________Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT   CURRENT       TARGET
kubelet     1 x v1.22.0   v1.23.17Upgrade to the latest stable version:COMPONENT                 CURRENT   TARGET
kube-apiserver            v1.22.0   v1.23.17
kube-controller-manager   v1.22.0   v1.23.17
kube-scheduler            v1.22.0   v1.23.17
kube-proxy                v1.22.0   v1.23.17
CoreDNS                   v1.8.4    v1.8.6
etcd                      3.5.0-0   3.5.6-0You can now apply the upgrade by executing the following command:kubeadm upgrade apply v1.23.17_____________________________________________________________________The table below shows the current state of component configs as understood by this version of kubeadm.
Configs that have a "yes" mark in the "MANUAL UPGRADE REQUIRED" column require manual config upgrade or
resetting to kubeadm defaults before a successful upgrade can be performed. The version to manually
upgrade to is denoted in the "PREFERRED VERSION" column.API GROUP                 CURRENT VERSION   PREFERRED VERSION   MANUAL UPGRADE REQUIRED
kubeproxy.config.k8s.io   v1alpha1          v1alpha1            no
kubelet.config.k8s.io     v1beta1           v1beta1             no
_____________________________________________________________________

2. 升级各个组件

接下来升级各个组件,包括kube-apiserver,kube-controller-manager等等

kubeadm upgrade apply v1.23.17 升级各个组件到1.23.17版本,如果etcd这个组件不想升级,可以加上选项:kubeadm upgrade apply v1.23.17 --etcd-upgrade=false。

# 通过将节点标记为不可调度并腾空节点为节点作升级准备:
[root@k8s ~]# kubectl drain k8s --ignore-daemonsets --delete-emptydir-data# 升级各个组件
[root@k8s ~]# kubeadm upgrade apply v1.23.17 --etcd-upgrade=false# 如果是worker节点,执行`kubeadm upgrade node`升级# 解除节点保护
[root@k8s ~]# kubectl get node
NAME   STATUS                     ROLES                  AGE     VERSION
k8s    Ready,SchedulingDisabled   control-plane,master   3d18h   v1.22.0
[root@k8s ~]# kubectl uncordon k8s
node/k8s uncordoned
[root@k8s ~]# kubectl get node
NAME   STATUS   ROLES                  AGE     VERSION
k8s    Ready    control-plane,master   3d18h   v1.22.0
# 此时查询到的版本还是老版本

3. 升级kubelet和kubectl

升级 kubelet 和 kubectl到1.21.9版本:

[root@k8s ~]# yum install -y kubelet-1.23.17 kubectl-1.23.17 --disableexcludes=kubernetes# 重启kubelet
[root@k8s ~]# systemctl daemon-reload ;systemctl restart kubelet# 查看版本信息
[root@k8s ~]# kubectl get node
NAME   STATUS   ROLES                  AGE     VERSION
k8s    Ready    control-plane,master   3d19h   v1.23.17

本文只记录了单节点环境的升级,如果是升级工作节点步骤与上面过程类似,只是worker节点不需要验证升级计划、无需升级管理组件,在上面的步骤中,将节点设置为不可调度后,执行kubeadm upgrade node升级worker节点即可。

升级worker节点步骤:

  1. 升级kubeadm版本;
  2. 腾空节点;
  3. 管理节点执行kubeadm upgrade node升级worker节点;
  4. uncordon节点;
  5. workder节点升级kubelet和kubectl并重启;
  6. 管理节点验证升级情况;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/30907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我该如何设置Android SDK环境变量配置成功

要成功设置Android SDK环境变量配置,你可以按照以下步骤进行(以Windows和macOS为例): Windows系统 下载并安装Android SDK 访问Android开发者网站(Android Studio官网)。下载并安装Android Studio。在安装…

3ds MAX 2024版资源包下载分享 3ds Max三维建模软件资源包下载安装

3DSMAX凭借其强大的功能和广泛的应用领域,吸引了无数创作者的青睐。 在游戏制作领域,3DSMAX展现出了无可比拟的优势。从细腻的角色建模到宏大的场景搭建,再到逼真的动画效果和渲染,它都能轻松应对,为游戏世界注入了生动…

“开放”的大模型到底有多“开放”?!

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则…

java面向对象(上)

一.面向对象与面向过程 1.面向过程 面向过程(procedure Oriented Programming),简称POP,主要思想就是将问题分解成一个个步骤去解决,把这个步骤称为函数. 典型语言:C语言 优点:可以大大简化代码 缺点:当代码量过大时,不方便维护 2.面向对象 面向对象(Object Oriented Pr…

Harbor 源码编译arm版本镜像

1. 先准备一个国外的arm服务器,(使用国内的也行,只是有时候下载依赖会断,需要科学上网) 2. git clone harbor的源码包,切换到要编译的分支 3. 修改harbor/Makefile Makefile里面的这些字段设置为true&…

不畏岁月惊扰

你有遗憾吗? 我本以为人生最大的遗憾是所爱隔山海,山海不可平,后来才知道,海有舟可渡,山有路可行,山海皆可平,难平是人心。 我曾错把陈醋当成墨,写进半生纸上酸,又曾“…

四川财谷通信息技术抖音小店信誉之选,购物新体验

在当今数字化浪潮的推动下,电商平台的兴起为人们的生活带来了极大的便利。而在众多电商平台中,抖音小店以其独特的社交属性和便捷的购物体验,逐渐赢得了消费者的青睐。四川财谷通信息技术有限公司旗下的抖音小店,更是凭借其可靠的…

记录SpringBoot启动报错解决

记录SpringBoot启动报错解决 报错现场 Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following:If you want an embedde…

33.获取入口点

上一个内容:32.双击列表启动目标游戏 前置知识 25.入口点注入(查看pe头)、32.双击列表启动目标游戏 以它的代码为基础进行修改 效果图: 代码实现:原理通过读文件流的方式把文件加载到内存中然后解析pe结构 void CWnd…

【FFmpeg】AVStream结构体

【FFmpeg】AVStream结构体 1.AVStream结构体的定义1.1 AVCodecParameters *codecpar1.1.1 AVPacketSideData *coded_side_data1.1.2 enum AVColorRange color_range1.1.3 enum AVColorPrimaries color_primaries1.1.4 enum AVColorTransferCharacteristic color_trc1.1.5 enum …

uniapp 实人认证

首先Dcloud创建云服务空间,开启一键登录并充值 下一步 1. 右键项目 》 创建uniCloud云开发环境 》右键uniCloud》关联云服务空间 2. cloudfunctions右键 新建云函数,任意命名(例:veify),然后右键项目》管…

Python 基础:异常

目录 一、异常概念二、处理异常2.1 抛出异常2.2 使用 try-except 代码块2.3 使用 try-except-else 代码块2.4 静默失败 三、总结 遇到看不明白的地方,欢迎在评论中留言呐,一起讨论,一起进步! 本文参考:《Python编程&a…

Vite文件目录结构介绍

我们通过命令create-vite shop-admin基于Vite创建vue3项目后,其默认的文件目录结构如下: shop-admin ├─ index.html ├─ package-lock.json ├─ package.json ├─ public │ └─ vite.svg ├─ src │ ├─ App.vue │ ├─ assets │ │ └…

C++多重继承,虚基类与友元

一.多重继承 就是一个类继承多个基类&#xff1b; class <派生类名>&#xff1a;<派生方式1><基类名1>,<派生方式n><基类名n> class Derived:public:Base1,public:Base2 上述形式&#xff1a;基类之间由逗号隔开&#xff0c;且必须指明继承方式…

【Python绘画】气球祝福节日快乐

本文收录于 《一起学Python趣味编程》专栏&#xff0c;从零基础开始&#xff0c;分享一些Python编程知识&#xff0c;欢迎关注&#xff0c;谢谢&#xff01; 文章目录 一、前言二、代码示例三、知识点梳理四、总结 一、前言 本文介绍如何使用Python的海龟画图工具turtle&#…

示例:WPF中DataGrid简单设置合并列头

一、目的&#xff1a;应用DataGridTemplateColumn列模板&#xff0c;去拆分列头和单元格布局的方式设置列头合并样式 二、实现 效果如下 三、环境 VS2022 四、示例 应用DataGridTemplateColumn自定义列头信息和单元格信息 <DataGrid AutoGenerateColumns"False"…

【机器学习】线性回归:从基础到实践的深度解析

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 线性回归&#xff1a;从基础到实践的深度解析引言一、线性回归基础1.1 定义与目…

铜陵市省重点实验室、省工程技术研究中心认定奖励补贴和申报认定条件流程归集

本文介绍铜陵市省重点实验室、省工程技术研究中心认定奖励补贴和申报认定条件等内容&#xff0c;详情如下&#xff0c;需要申报的可指导&#xff01; 铜陵市省重点实验室、省工程技术研究中心认定奖励补贴&#xff08;2023年发布&#xff09; 对新认定的国家重点实验室、国家…

使用js和vue2实现菜单收藏功能

在JavaScript和Vue 2中实现菜单收藏功能通常涉及到前端的交互逻辑和后端的数据存储。以下是一个简单的实现步骤&#xff0c;包括前端和后端的基本逻辑&#xff1a; 前端实现&#xff08;Vue 2&#xff09; 定义数据结构&#xff1a;在Vue组件中定义一个数组来存储收藏的菜单项…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 机器人搬砖(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…