云原生Kubernetes:K8S集群版本升级(v1.22.14 - v1.23.14)

2023-12-26 23:44

本文主要是介绍云原生Kubernetes:K8S集群版本升级(v1.22.14 - v1.23.14),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 一、理论

1.K8S集群升级

2.环境

3.升级集群(v1.23.14)

4.验证集群(v1.23.14)

二、实验

1. 环境

2.升级集群(v1.23.14)

2.验证集群(v1.23.14)


 一、理论

1.K8S集群升级

(1)概念

        搭建K8S集群的方式有很多种,比如二进制,kubeadm,RKE(Rancher)等,K8S集群升级方式也各有千秋,目前准备使用kubeadm方式搭建的k8s集群升级方法。

        需要注意的是,升级集群版本建议逐步升级,比如v1.20.4–>v1.21.4–>v1.22.4–>v1.23.4–>v1.24.4,不能跨度过大,否则会报错。

2.环境

(1)主机

表1 主机

主机架构当前版本目标版本IP
master1K8S master节点v1.22.14v1.23.14192.168.204.180
master2K8S master节点v1.22.14v1.23.14192.168.204.181
node1K8S node节点v1.22.14v1.23.14192.168.204.182 


3.升级集群(v1.23.14)

升级策略为直接升级到v1.23.14

v1.22.14–>v1.23.14

(1)确定升级版本

可以看到目前的版本是v1.22.14。

kubectl get nodes   # 查看集群版本NAME      STATUS   ROLES                  AGE   VERSION
master1   Ready    control-plane,master   95d   v1.22.14
master2   Ready    control-plane,master   95d   v1.22.14
node1     Ready    worker                 95d   v1.22.14
# 执行如下命令确定升级版本
yum list --showduplicates kubeadm --disableexcludes=kubernetes

我的目标版本是1.23.14-0。

(2)升级Master

①所有 master 节点操作

# 升级kubeadm
yum install -y kubeadm-1.23.14-0 --disableexcludes=kubernetes   # --disableexcludes=kubernetes:禁掉除了这个kubernetes之外的别的仓库# 升级完成后验证版本
kubeadm version

② 升级 master1 节点

# 验证升级计划。检查当前集群是否可被升级
kubeadm upgrade plan

最高可以升级到 v1.21.14版本,正好与我们的目标版本一致;只要可允许升级的最高版本高于你的目标版本,就可以升级。

注意:kubeadm upgrade命令也会自动对kubeadm在节点上所管理的证书执行续约操作。如果需要略过证书续约操作,可以使用
标志--certificate-renewal=false。

确定集群升级目标版本,并且查看升级计划符合条件后,就可以在 master1 节点上执行升级集群的命令了

# 将 master1 升级到目标版本
kubeadm upgrade apply v1.23.14

③ 升级 master2节点

master2节点操作

升级master2节点与 master1 节点相同,但是使用下面的命令,而不是kubeadm upgrade apply命令。

kubeadm upgrade node

④升级kubectl和kubelet

两台 master 节点操作,操作顺序:master1——>master2
分别在两台master节点上执行如下操作,注意更改<节点名称>。

# 1.将当前节点标记为不可调度,并驱逐节点上的Pod
kubectl drain <节点名称> --ignore-daemonsets --delete-emptydir-data
##说明:
## --ignore-daemonsets 无视DaemonSet管理下的Pod。即--ignore-daemonsets往往需要指定的,这是
#因为deamonset会忽略unschedulable标签(使用kubectl drain时会自动给节点打上不可调度标签),
#由于deamonset控制器控制的pod被删除后可能马上又在此节点上启动起来,这样就会成为死循环。因此
#这里忽略daemonset。# 2.升级kubelet和kubectl组件
yum install -y kubelet-1.23.14-0 kubectl-1.23.14-0 --disableexcludes=kubernetes ## 说明: --disableexcludes=kubernetes:禁掉除了这个kubernetes之外的别的仓库# 3.重启kubelet
systemctl daemon-reload
systemctl restart kubelet# 4.恢复当前节点上的Pod调度,使其上线
kubectl uncordon <节点名称>

此时查看节点版本,发现两台master节点已经升级完毕。

[root@master1 ~]# kubectl get nodes
NAME      STATUS   ROLES                  AGE   VERSION
master1   Ready    control-plane,master   95d   v1.23.14
master2   Ready    control-plane,master   95d   v1.23.14
node1     Ready    worker                 95d   v1.22.14

接下来升级node节点。

(3) 升级 node

工作节点上的升级过程应该一次执行一个节点,或者一次执行几个节点,以不影响运行工作负载所需的最小容量。
由于我的集群中只有一个worker节点,所以这里只在一台机器上操作;如果你的集群中有多个node节点,每个节点都需要操作。

# 升级kubeadm
yum install -y kubeadm-1.23.14-0 --disableexcludes=kubernetes
# 查看版本
kubeadm version# 升级 node 节点
kubeadm upgrade node# 设置节点不可调度并排空节点。只有1个worker节点时忽略此步,因为可能会报错
kubectl drain node1 --ignore-daemonsets# 升级kubelet和kubectl组件
yum install -y kubelet-1.23.14-0 kubectl-1.23.14-0 --disableexcludes=kubernetes# 重启kubelet
systemctl daemon-reload
systemctl restart kubelet# 恢复当前节点上的Pod调度。只有1个worker节点时忽略此步
kubectl uncordon node1     # node1 为worker节点名称

4.验证集群(v1.23.14)

(1)验证集群状态是否正常

kubectl get nodes# 结果如下:
[root@master1 ~]# kubectl get nodes

版本均已升级到 v1.23.14。

(2) 查看节点详细信息

kubectl get nodes -o wide

二、实验

1. 环境

(1)主机

表1 主机

主机架构当前版本目标版本IP
master1K8S master节点v1.22.14v1.23.14192.168.204.180
master2K8S master节点v1.22.14v1.23.14192.168.204.181
node1K8S node节点v1.22.14v1.23.14192.168.204.182 

2.升级集群(v1.23.14)

(1)确定升级版本

可以看到目前的版本是v1.22.14。

执行如下命令确定升级版本

我的目标版本是1.23.14-0。

(2)升级Master

①所有 master 节点操作

 升级kubeadm

 升级完成后验证版本

② 升级 master1 节点

验证升级计划。检查当前集群是否可被升级

最高可以升级到 v1.23.17 版本,包含目标版本;只要可允许升级的最高版本高于你的目标版本,就可以升级。

注意:kubeadm upgrade命令也会自动对kubeadm在节点上所管理的证书执行续约操作。如果需要略过证书续约操作,可以使用
标志--certificate-renewal=false。

确定集群升级目标版本,并且查看升级计划符合条件后,就可以在 master1 节点上执行升级集群的命令了

成功

③ 升级 master2节点

master2节点操作

升级master2节点与 master1 节点相同,但是使用下面的命令kubeadm upgrade node
,而不是kubeadm upgrade apply命令。

升级kubeadm

升级完成后验证版本

升级master2节点

成功:

④升级kubectl和kubelet

两台 master 节点操作,操作顺序:master1——>master2
分别在两台master节点上执行如下操作,注意更改<节点名称>。

1)master1节点

将当前节点标记为不可调度,并驱逐节点上的Pod

升级kubelet和kubectl组件

重启kubelet

恢复当前节点上的Pod调度,使其上线

查看节点版本,发现一台master节点已经升级完毕。​​​​​​​

2)master2节点

将当前节点标记为不可调度,并驱逐节点上的Pod

升级kubelet和kubectl组件​​​​​​​

重启kubelet

恢复当前节点上的Pod调度,使其上线

此时查看节点版本,发现两台master节点已经升级完毕。​​​​​​​

接下来升级node节点。

(3) 升级 node

工作节点上的升级过程应该一次执行一个节点,或者一次执行几个节点,以不影响运行工作负载所需的最小容量。
由于我的集群中只有一个worker节点,所以这里只在一台机器上操作;如果你的集群中有多个worker节点,每个节点都需要操作。

① 升级kubeadm​​​​​​​​​​​​​​

② 查看版本

③升级 node 1节点

④ 设置节点不可调度并排空节点。只有1个worker节点时忽略此步,因为可能会报错

⑤升级kubelet和kubectl组件

⑥ 重启kubelet

⑦恢复当前节点上的Pod调度。只有1个node节点时忽略此步

2.验证集群(v1.23.14)

(1)验证集群状态是否正常​​​​​​​​​​​​​​

版本均已升级到 v1.23.14。

(2) 查看节点详细信息

这篇关于云原生Kubernetes:K8S集群版本升级(v1.22.14 - v1.23.14)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/541197

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

什么是Kubernetes PodSecurityPolicy?

@TOC 💖The Begin💖点点关注,收藏不迷路💖 1、什么是PodSecurityPolicy? PodSecurityPolicy(PSP)是Kubernetes中的一个安全特性,用于在Pod创建前进行安全策略检查,限制Pod的资源使用、运行权限等,提升集群安全性。 2、为什么需要它? 默认情况下,Kubernetes允许用户自由创建Pod,可能带来安全风险。

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle