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

k8s 1.23升级1.24

0、简介

这里只用3台服务器来做一个简单的集群,当前版本是1.23.17目标升级到1.24.17

地址主机名
192.168.160.40kuber-master-1
192.168.160.41kuber-master-2
192.168.160.42kuber-node-1

我这里设置的master2可调度pod,将master2的污点去掉

kubectl describe nodes node | grep Taint

kubectl taint nodes kuber-master-2 node-role.kubernetes.io/master:NoSchedule-

版本对应关系

containerd对应

ingress对应

https://github.com/kubernetes/ingress-nginx

当前ingress1.4.0,先升级集群到1.25

升级ingress到1.9.6,升级集群到1.30

升级ingress到1.12.1 

calico对应

System requirements | Calico Documentation

升级calico到3.24

1、升级calico

这里旧版本的calico是3.20,先升级到3.24版本。

curl https://raw.githubusercontent.com/projectcalico/calico/v3.24.5/manifests/calico.yaml -o calico.yaml

下载3.24版本,直接进行apply操作,会对旧版本覆盖。

kubectl apply -f calico.yam

2、升级k8s版本--master执行

(1)升级kubeadm

yum install -y kubeadm-1.24.17-0 --disableexcludes=kubernetes

kubeadm version 查看当前kubeadm的版本

(2)查看执行计划

kubeadm upgrade plan

(3)修改runtime

kubectl edit nodes kuber-master-1

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

修改为

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

(4)配置containerd修改默认Cgroup驱动

containerd config default > /etc/containerd/config.toml

sed -i 's#SystemdCgroup = false#SystemdCgroup = true#g' /etc/containerd/config.toml

vim /var/lib/kubelet/kubeadm-flags.env

KUBELET_KUBEADM_ARGS="--network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.6"

修改为

KUBELET_KUBEADM_ARGS="--pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.6 --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock"

systemctl daemon-reload

systemctl restart containerd #重启containerd

systemctl restart kubelet #重启kubelet

(5)定义 crictl 如何连接到容器运行时

cat >/etc/crictl.yaml<<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF

# 加载
systemctl daemon-reload
systemctl restart containerd

(6)开始升级

kubeadm upgrade apply v1.24.17

(7)升级kubelet和kubectl

kubectl drain k8s-master01 --ignore-daemonsets

yum -y install kubelet-1.24.17 kubectl-1.24.17

systemctl daemon-reload

systemctl restart kubelet

kubectl uncordon k8s-master01

(8)升级其他控制节点

不需要执行kubeadm upgrade plan
kubeadm upgrade node

替换 kubeadm upgrade apply
其他流程一样。

3、升级k8s版本--node执行

yum -y install kubeadm-1.24.17

驱逐node上的pod

kubectl drain  k8s-node-01  --ignore-daemonsets

同master一样修改运行时和配置

做完1-5步就行

kubeadm upgrade node

升级kubelet和kubectl

kubectl drain k8s-node-01 --ignore-daemonsets

yum -y install kubelet-1.24.17 kubectl-1.24.17

systemctl daemon-reload

systemctl restart kubelet

kubectl uncordon k8s-node-01

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

相关文章:

  • JavaSE基础——第六章 类与对象(二)
  • 使用dockerbuildx在x86机器上构建arm版docker镜像
  • 神经网络基础
  • 嵌入式AI简介
  • java面向对象 - 封装、继承和多态
  • 浅谈ai - Activation Checkpointing - 时间换空间
  • HANA如何在存储过程里执行动态SQL
  • 智慧节能双突破 强力巨彩谷亚VK系列刷新LED屏使用体验
  • 初识Linux-基本常用指令(一篇学会操作指令)
  • 03.unity开发资源 获取
  • 05.unity 游戏开发-3D工程的创建及使用方式和区别
  • Windows程序中计时器WM_TIMER消息的使用
  • Golang的Goroutine(协程)与runtime
  • 使用MATIO库读取Matlab数据文件中的稀疏矩阵
  • JAVA阻塞队列
  • OrangePi入门教程(待更新)
  • C++开发工具全景指南
  • 【java】在 Java 中,获取一个类的`Class`对象有多种方式
  • 6.5.图的基本操作
  • YOLOX 检测头以及后处理
  • 联网汽车陷入网络安全危机
  • 贪心算法之任务选择问题
  • mmap函数的概念和使用方案
  • 爬楼梯问题-动态规划
  • 3536 矩形总面积
  • leetcode4.寻找两个正序数组中的中位数
  • 类 和 对象 的介绍
  • 2024 .11-2025.3 一些新感悟
  • 【33期获取股票数据API接口】如何用Python、Java等五种主流语言实例演示获取股票行情api接口之沪深A股当天逐笔交易数据及接口API说明文档
  • 【2020】【论文笔记】相变材料与超表面——