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

k8s集群升级

目录

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

2. 升级master节点

3. 升级worker节点

4. 部署containerd 


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

k8s从1.24版本开始移除了dockershim,所以需要安装cri-docker插件才能使用docker

软件下载:GitHub - Mirantis/cri-dockerd: dockerd as a compliant Container Runtime Interface for Kubernetes

安装

rpm -ivh  cri-dockerd-0.3.5.20231016182601.cd730ff8-0.el7.x86_64.rpm

配置cri-docker

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.7systemctl daemon-reload
systemctl  enable --now cri-docker
ll /var/run/cri-dockerd.sock

2. 升级master节点

首先上传镜像到harbor仓库,便于升级

docker load -i k8s-v1.24.17.tar
docker images | grep k8s
docker push reg.westos.org/k8s/kube-apiserver:v1.24.17
docker push  reg.westos.org/k8s/kube-proxy:v1.24.17
docker push reg.westos.org/k8s/kube-scheduler:v1.24.17
docker push reg.westos.org/k8s/kube-controller-manager:v1.24.17
docker push reg.westos.org/k8s/pause:3.7

升级kubeadm 执行升级

yum install -y kubeadm-1.24.17-0
kubeadm upgrade plan

修改节点套接字

kubectl edit nodes k8s1kubeadm.alpha.kubernetes.io/cri-socket: unix:///var/run/cri-dockerd.sockkubeadm upgrade apply v1.24.17

腾空节点

kubectl drain k8s1 --ignore-daemonsets

升级kubelet

yum install -y kubelet-1.24.17-0 kubectl-1.24.17-0

配置kubelet使用cri-docker

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

systemctl daemon-reload 
systemctl  restart kubelet 

解除节点保护

kubectl uncordon k8s1

完成升级

3. 升级worker节点

升级kubeadm  执行升级

yum install -y kubeadm-1.24.17-0
kubeadm upgrade node

腾空节点   #需要在master节点执行

kubectl drain k8s2 --ignore-daemonsets
kubectl drain k8s3 --ignore-daemonsets

升级kubelet

yum install -y kubelet-1.24.17-0 kubectl-1.24.17-0

配置kubelet使用cri-docker

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"

修改节点套接字  #需要在master节点执行

kubectl edit nodes k8s2
...
kubeadm.alpha.kubernetes.io/cri-socket: unix:///var/run/cri-dockerd.sock

重启kubelet

systemctl daemon-reload 
systemctl  restart kubelet 

解除节点保护  #需要在master节点执行

kubectl uncordon k8s2

其它节点依此类推

完成升级

4. 部署containerd 

k8s从1.24版本开始移除了dockershim,所以我们不在使用docker,选用containerd。

k8s1、k8s2、k8s3在配置前需要重置节点

kubeadm reset
kubeadm reset  --cri-socket unix:///var/run/cri-dockerd.sock
kubeadm reset  --cri-socket unix:///var/run/cri-dockerd.sock

k8s1:

k8s2,3

所有节点清除iptables规则

iptables -F
iptables -F -t nat

禁用所有节点docker和cri-docker服务

systemctl  disable --now docker
systemctl  disable --now docker.socket
systemctl  disable --now cri-docker

之前部署过docker,containerd默认已经安装

修改配置

containerd config default | tee /etc/containerd/config.toml
cd /etc/containerd/
vim config.toml
...
sandbox_image = "reg.westos.org/k8s/pause:3.7"
...
SystemdCgroup = true

修改配置文件

vim /etc/containerd/config.toml
...
[plugins."io.containerd.grpc.v1.cri".registry]config_path = "/etc/containerd/certs.d"
mkdir -p /etc/containerd/certs.d/docker.iovim /etc/containerd/certs.d/docker.io/hosts.tomlserver = "https://registry-1.docker.io"[host."https://reg.westos.org"]capabilities = ["pull", "resolve", "push"]skip_verify = true

拷贝证书

mkdir -p /etc/containerd/certs.d/reg.westos.org
cp /etc/docker/certs.d/reg.westos.org/ca.crt /etc/containerd/certs.d/reg.westos.org/
systemctl  restart containerd
scp -r certs.d/ config.toml k8s2:/etc/containerd/
scp -r certs.d/ config.toml k8s3:/etc/containerd/k8s2,3
systemctl disable --now docker cri-docker docker.socket
systemctl  enable --now containerd
crictl config runtime-endpoint unix:///run/containerd/containerd.sock

启动containerd

systemctl  enable --now containerd
systemctl  restart containerd
crictl config runtime-endpoint unix:///run/containerd/containerd.sock
crictl img
crictl pull reg.westos.org/k8s/pause:3.6

集群初始化

kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository reg.westos.org/k8s --kubernetes-version v1.24.17
kubectl apply -f kube-flannel.yml

 

http://www.lryc.cn/news/212597.html

相关文章:

  • redis原理 主从同步和哨兵集群
  • 四季古诗赏析
  • 【网络协议】聊聊套接字socket
  • GEO生信数据挖掘(十一)STRING数据库PPI蛋白互作网络 Cytoscape个性化绘图【SCI 指日可待】
  • api接口更新钉钉文档
  • Android---如何同view进行渲染
  • 【LeetCode:26. 删除有序数组中的重复项 | 双指针】
  • 如何判断一个对象是不是一个空对象?
  • C/C++ “variable set but not used“的 警告问题解决方案
  • JAVA安全入门之反射
  • 【c++|opencv】一、基础操作---2.图像信息获取
  • HarmonyOS开发:探索组件化模式开发
  • 目标URL启用了不安全的HTTP方法
  • 大数据之LibrA数据库系统告警处理(ALM-12001 审计日志转储失败)
  • 大模型该被知道的技术实现-面向垂直领域
  • 赛灵思产品系列
  • [Linux C] signal 的使用
  • AI时代产品经理升级之道:ChatGPT让产品经理插上翅膀
  • 计算机网络重点概念整理-第七章 网络安全【期末复习|考研复习】
  • 【LeetCode力扣】42. 接雨水
  • 03、SpringCloud -- 动态倒计时 及 当前用户的获取(用户未登录提示其登录)
  • Mac用户心目中的四款首选原型工具
  • 国内内卷太严重,还不考虑一下在海外接单?那这几个平台你知道吗?
  • 在excel中如何打出上标、下标
  • LoongArch 五级流水线实现
  • 「Qt中文教程指南」如何创建基于Qt Widget的应用程序(四)
  • 11、SpringCloud -- 利用redis优化查询秒杀商品的数据(就是可以把商品数据先存到redis中)
  • 计算节点上iptables安全组分析
  • 香港科技大学广州|可持续能源与环境学域博士招生宣讲会—上海专场!!!(暨全额奖学金政策)
  • 有没有什么网站可以在线做视频脚本?批量制作视频,批量替换素材混剪?