k8s-Kubernetes集群升级

news/2025/2/22 22:29:09/

文章目录

  • 前言
  • 一、集群升级:1.23.17升级至1.24.0
    • 1.部署cri-docker (所有集群节点均需部署)
    • 2.升级master节点
    • 3.升级worker节点
  • 二、集群升级:1.24升级至1.25
    • 1.说明
    • 2.升级master节点
    • 3.升级worker节点


前言


一、集群升级:1.23.17升级至1.24.0

https://v1-24.docs.kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
查看官网,得知必须安装cri-docker:
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

1.部署cri-docker (所有集群节点均需部署)

k8s从1.24版本开始移除了dockershim,所以需要安装cri-docker插件才能使用docker
软件下载:https://github.com/Mirantis/cri-dockerd
在这里插入图片描述

安装
[root@server2 ~]# rpm -ivh cri-dockerd-0.3.1-3.el7.x86_64.rpm
配置cri-docker
[root@server2 ~]# vim /usr/lib/systemd/system/cri-docker.service
[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugin=cni --pod-infra-container-image=reg.westos.org/k8s/pause:3.7[root@server2 ~]# systemctl daemon-reload
[root@server2 ~]# systemctl  enable --now cri-docker[root@server2 ~]# ll /var/run/cri-dockerd.sock
srw-rw---- 1 root docker 0 Jan  9 17:51 /var/run/cri-dockerd.sock

cri-docker官网得来下图
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.升级master节点

首先上传镜像到harbor仓库,便于升级
reg.westos.org/k8s/kube-apiserver v1.24.0
reg.westos.org/k8s/kube-proxy v1.24.0
reg.westos.org/k8s/kube-scheduler v1.24.0
reg.westos.org/k8s/kube-controller-manager v1.24.0
reg.westos.org/k8s/etcd 3.5.3-0
reg.westos.org/k8s/pause 3.7
reg.westos.org/k8s/coredns v1.8.6
注:本实验更新的镜像为tar包导入,1.24升级至1.25镜像为阿里云下载!
导入镜像命令:
[root@server2 ~]# docker load -i k8s-1.24.0.tar
上传仓库命令(挨个上传):
[root@server2 ~]# docker push reg.westos.org/k8s/kube-proxy:v1.24.0
在这里插入图片描述

升级kubeadm
[root@server2 ~]# yum install -y kubeadm-1.24.0-0

执行升级
[root@server2 ~]# kubeadm upgrade plan
在这里插入图片描述

在这里插入图片描述

由官方上图得到下面:修改节点套接字
修改节点套接字:找本地的cri-dockerd.sock
[root@server2 ~]# kubectl edit nodes server2

kubeadm.alpha.kubernetes.io/cri-socket: unix:///var/run/cri-dockerd.sock

[root@server2 ~]# kubeadm upgrade apply v1.24.0

腾空节点
[root@server2 ~]# kubectl drain server2 --ignore-daemonsets

升级kubelet
[root@server2 ~]# yum install -y kubelet-1.24.0-0 kubectl-1.24.0-0

配置kubelet使用cri-docker
在这里插入图片描述

[root@server2 ~]# vim /var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS=“–pod-infra-container-image=reg.westos.org/k8s/pause:3.7 --container-runtime=remote --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock”
在这里插入图片描述

重启kubelet
[root@server2 ~]# systemctl daemon-reload
[root@server2 ~]# systemctl restart kubelet

解除节点保护
[root@server2 ~]# kubectl uncordon server2

3.升级worker节点

升级kubeadm
[root@server3 ~]# yum install -y kubeadm-1.24.0-0

执行升级
[root@server3 ~]# kubeadm upgrade node

腾空节点
[root@server2 ~]# kubectl drain server3 --ignore-daemonsets #需要在master节点执行

升级kubelet
[root@server3 ~]# yum install -y kubelet-1.24.0-0 kubectl-1.24.0-0

配置kubelet使用cri-docker
[root@server3 ~]# vim /var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS=“–pod-infra-container-image=reg.westos.org/k8s/pause:3.7 --container-runtime=remote --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock”
在这里插入图片描述

修改节点套接字
[root@server2 ~]# kubectl edit nodes server3 #需要在master节点执行

kubeadm.alpha.kubernetes.io/cri-socket: unix:///var/run/cri-dockerd.sock
在这里插入图片描述

重启kubelet
[root@server3 ~]# systemctl daemon-reload
[root@server3 ~]# systemctl restart kubelet

解除节点保护
[root@server2 ~]# kubectl uncordon server3 #需要在master节点执行

其它node节点(server4)依此类推
在这里插入图片描述

二、集群升级:1.24升级至1.25

1.说明

上面实验已将cri-docker 部署,所以本实验不需要在次部署
【配置cri-docker、配置kubelet使用cri-docker】这两个文件设置也可以不改变,若改变(3.7改为3.8),需将集群内所有节点都进行修改
配置cri-docker
[root@server2 ~]# vim /usr/lib/systemd/system/cri-docker.service
[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugin=cni --pod-infra-container-image=reg.westos.org/k8s/pause:3.7
[root@server2 ~]# systemctl daemon-reload
[root@server2 ~]# systemctl enable --now cri-docker
配置kubelet使用cri-docker
[root@server2 ~]# vim /var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS=“–pod-infra-container-image=reg.westos.org/k8s/pause:3.7 --container-runtime=remote --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock”
重启kubelet
[root@kserver2 ~]# systemctl daemon-reload
[root@kserver2 ~]# systemctl restart kubelet

2.升级master节点

升级kubeadm
[root@server2 ~]# yum install -y kubeadm-1.25.0-0

下载所需镜像

[root@server2 ~]#  kubeadm config images pull  --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.25.0 --cri-socket unix:///var/run/cri-dockerd.sock
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-apiserver:v1.25.0
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-controller-manager:v1.25.0
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-scheduler:v1.25.0
[config/images] Pulled registry.aliyuncs.com/google_containers/kube-proxy:v1.25.0
[config/images] Pulled registry.aliyuncs.com/google_containers/pause:3.8
[config/images] Pulled registry.aliyuncs.com/google_containers/etcd:3.5.4-0
[config/images] Pulled registry.aliyuncs.com/google_containers/coredns:v1.9.3

在这里插入图片描述
上传镜像到harbor仓库:上传前需确认好镜像
[root@server2 ~]# docker images |grep google_containers | awk ‘{print $1":"$2}’ | awk -F/ ‘{system(“docker tag “$0” reg.westos.org/k8s/”$3"")}’
[root@server2 ~]# docker images |grep k8s | awk ‘{system(“docker push “$1”:”$2"")}’
在这里插入图片描述

升级集群版本
[root@server2 ~]# kubeadm upgrade apply v1.25.0
在这里插入图片描述
腾空节点
[root@server2 ~]# kubectl drain server2 --ignore-daemonsets

升级kubelet
[root@server2 ~]# yum install -y kubelet-1.25.0-0 kubectl-1.25.0-0

[root@server2 ~]# systemctl daemon-reload
[root@server2 ~]# systemctl restart kubelet

解除节点保护
[root@server2 ~]# kubectl uncordon server2
node/server2 uncordoned

[root@server2 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
server2 Ready control-plane 2d1h v1.25.0
server3 Ready 2d1h v1.24.0
server4 Ready 2d1h v1.24.0

3.升级worker节点

[root@server3 ~]# yum install -y kubeadm-1.25.0-0

[root@server3 ~]# kubeadm upgrade node
在这里插入图片描述
腾空节点
[root@server2 ~]# kubectl drain server3 --ignore-daemonsets

升级kubelet
[root@server3 ~]# yum install -y kubelet-1.25.0-0 kubectl-1.25.0-0
[root@server3 ~]# systemctl daemon-reload
[root@server3 ~]# systemctl restart kubelet

解除节点保护
[root@server2 ~]# kubectl uncordon server3
node/server3 uncordoned

[root@server2 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
server2 Ready control-plane 2d1h v1.25.0
server3 Ready 2d1h v1.25.0
server4 Ready 2d1h v1.24.0

其它node节点(server4)依此类推
在这里插入图片描述



http://www.ppmy.cn/news/30929.html

相关文章

Delphi 实现HTML邮件发送

在我们的邮箱里,经常收到HTML格式的邮件。每注册一个网站的时候,总会收到一些他们发来的邮件,打开一后发现和一个网页一样,有图片、链接、文字,甚至有的还有声音和视频和交互。那我们想知道我们怎么才可以给朋友发送这…

现在招个会自动化测试的人是真难呀~你会个锤子的自动化测试

现在招个会自动化测试的人是真难呀~ 前一段时间公司计划要招2个自动化测试到岗,同事面试了十几个来应聘的人,发现一个很奇怪的现象,在面试的时候,如果问的是框架API、脚本编写这些问题,基本上所有人都能对答如流&…

第十四届蓝桥杯三月真题刷题训练——第 4 天

目录 题目 1 :九数算式_dfs回溯(全排列) 题目描述 运行限制 代码: 题目2:完全平方数 问题描述 输入格式 输出格式 样例输入 1 样例输出 1 样例输入 2 样例输出 2 评测用例规模与约定 运行限制 代码: 题目 1 &am…

【建议收藏】深入浅出Yolo目标检测算法(含Python实现源码)

深入浅出Yolo目标检测算法(含Python实现源码) 文章目录深入浅出Yolo目标检测算法(含Python实现源码)1. One-stage & Two-stage2. Yolo详解2.1 Yolo命名2.2 端到端输入输出2.3 Yolo中的标定框2.4 Yolo网络结构2.5 Yolo的算法流…

SpringBoot中的bean注入方式和原理介绍

Spring Boot是一个非常流行的Java框架,它可以帮助开发者快速地构建高效、健壮的应用程序。其中一个重要的功能就是依赖注入,也就是将一个对象注入到另一个对象中,以便它们可以相互协作。在Spring Boot中,依赖注入是通过bean实现的…

STL标准模板库(Standard Template Library)-常用算法

STL标准模板库(Standard Template Library)-常用算法 概述&#xff1a;算法主要是由头文件<algorithm> <functional> <numeric>组成&#xff1a; <algorithm>是所有STL头文件中最大的一个&#xff0c;范围涉及到比较、 交换、查找、遍历操作、复制、…

【C语言】3天速刷C语言(初识)

【声明】本篇博客只用于对与刚学习C语言的同学的一个初始了解&#xff0c;具体内容请继续关注本专栏后续内容。什么是C语言C语言是一门通用计算机编程语言&#xff0c;广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及…

学习python好就业么

Python的普及与数据挖掘、人工智能和数值计算等领域的蓬勃发展相关&#xff0c;但同时也与普遍编程需求的增加有关。 Python作为人工智能的头号语言&#xff0c;一方面会吸引大量计划从事人工智能的人来学习&#xff0c;另一方面自然也带动了网络上对这门“新语言”的关注和讨…