当前位置: 首页 > 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.mrgr.cn/news/97348.html

相关文章:

  • k8s之Ingress讲解
  • TDengine 从入门到精通(2万字长文)
  • 线程池/内存池/mysql连接池
  • 15分钟完成Odoo18.0安装与基本配置
  • Nginx 常见面试题
  • 现代Web表单验证的终极解决方案:构建可扩展的企业级验证系统
  • sentinel新手入门安装和限流,热点的使用
  • 003集——《利用 C# 与 AutoCAD API 开发 WPF 随机圆生成插件》(侧栏菜单+WPF窗体和控件+MVVM)
  • Gerapy二次开发:用户管理专栏页面样式与功能设计
  • 2024 天梯赛——工业园区建设题解
  • C++ 内存访问模式优化:从架构到实践
  • 协同控制与分布式控制 —— 理论、案例与交互式 GUI 实现
  • 进程内存分布--之理论知识
  • 从零实现本地大模型RAG部署
  • 小刚说C语言刷题——第16讲 switch语句
  • 【Linux学习笔记】初识进程概念和进程PCB
  • 构建企业级表单验证系统:可配置化验证器设计与实现
  • C语言中单向链表:创建节点与插入新节点
  • btrfs , ext4 , jfs , xfs , zfs 对比 笔记250406
  • 基于BP神经网络的杂草智能识别系统(杂草识别、Python项目)