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

k8s的calico出现ipset报错解决方法

k8s集群搭建ipset报错…stderr="ipset v7.11: Kernel and userspace…解决方法

原因是容器内7.11版本的ipset和主机内核不兼容,看到网络上很多解法甚至包括AI回答都是降级内核版本,但是我担心降级内核版本影响主机上其他服务或进程,于是我们可以选择升级calico版本

我使用的是Euler系统6.6.0-72.0.0.76.oe2403sp1.x86_64版本,同时我服务器上k8s的版本为1.26.1

查看当前k8s版本命令

kubectl version --short

查看当前内核版本命令

uname -r

查看当前calico版本(通过镜像标签查看)

kubectl get pods -n kube-system -l k8s-app=calico-node -o yaml | grep "image:"

如果你的k8s版本在1.27.16以下,calico版本不能超过3.27.5

你现在肯定被这个报错整的很烦了,pod一直重启ready不了对吧,没事,我们先把calico全部删掉,再下载正确的版本,经过测试,我下载3.27.3版本的calico没有问题

kubernetes删除calico全过程

1.删除所有calico相关镜像

ctr -n=k8s.io images list | grep calico | awk '{print $1}' | xargs -I {} ctr -n=k8s.io images remove {}

2. 只删除 Calico 相关的 Pod

kubectl delete pods -n kube-system -l k8s-app=calico-node --force --grace-period=0
kubectl delete pods -n kube-system -l k8s-app=calico-kube-controllers --force --grace-period=0

3. 删除 Calico 的控制器和工作负载

kubectl delete deployment -n kube-system calico-kube-controllers --force --grace-period=0
kubectl delete daemonset -n kube-system calico-node --force --grace-period=0

4. 删除 Calico 的 CRD(自定义资源定义)

kubectl delete crd $(kubectl get crd | grep -E "(calico|projectcalico)" | awk '{print $1}') --force --grace-period=0

5. 删除 Calico 的配置和权限资源

kubectl delete configmap -n kube-system calico-config --force --grace-period=0
kubectl delete serviceaccount -n kube-system calico-node --force --grace-period=0
kubectl delete clusterrolebinding calico-node --force --grace-period=0
kubectl delete clusterrole calico-node --force --grace-period=0

6. 可选:删除 Calico 的 Webhook(如果有)

kubectl delete validatingwebhookconfiguration calico --force --grace-period=0 2>/dev/null || true

7.删除calico yaml文件里定义的kubernetes资源

kubectl delete -f calico.yaml

8.确认 Calico 资源已删除

kubectl get pods -n kube-system | grep calico
kubectl get deployment -n kube-system | grep calico
kubectl get daemonset -n kube-system | grep calico

应该看不到任何calico资源

安装calico

calico的release安装包下载地址

https://github.com/projectcalico/calico/releases?page=1

yaml文件下载地址(默认后端为kubernetes)

https://raw.githubusercontent.com/projectcalico/calico/v3.26.4/manifests/calico.yaml

如果无法科学上网或者在离线环境下部署可以选择提前安装release-版本号.tgz压缩包,解压后在其image中可以找到对应镜像,在手动加载镜像,例如

加载cni、kube-controllers、node镜像,使用ctr命令(注意每隔节点都要执行加载):

ctr -n=k8s.io images import calico-cni.tar &&
ctr -n=k8s.io images import calico-kube-controllers.tar &&
ctr -n=k8s.io images import calico-node.tar &&

再下载对应版本的yaml,然后在一个master节点上执行

kubectl apply -f calico.yaml

上面这条命令是将calico所需资源部署到k8s中

查看 Calico Pod 的启动状态(动态)

kubectl get pods -n kube-system -l k8s-app=calico-node -w

查看当前所有pod

kubectl get pods -A

查看当前calico版本(通过镜像标签查看)

kubectl get pods -n kube-system -l k8s-app=calico-node -o yaml | grep "image:"

经过以上删除重装,希望你的calico的pod已经可以全部ready啦

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

相关文章:

  • SimpleDateFormat
  • 网站后期的维护和更新池州网站建设推广
  • 低空经济的实时神经系统:空地一体化音视频架构的技术演进
  • 更换MacbookAir固态硬盘,并用U盘安装MacOS操作系统
  • 创建一个简单的SpringBoot
  • 硅基计划2.0 学习总结 玖 图书管理系统 2.0复盘版(文字末尾源码可复制)
  • 河北省建设信息网站十种营销方法
  • qt调用摄像头进行yolo的实时检测
  • 网站备案通过什么可以备案wordpress熊掌号插件
  • IntelliJ IDEA 使用 Lombok 报错:“Lombok requires enabled annotation processing” 解决方案
  • qtmqtt: 一个开源且好用的mqtt开源客户端
  • 数据仓库——总线架构详解
  • 软件中锁机制全解析:从线程到分布式锁
  • 郴州网站设计做外墙资料的网站
  • 【Swift】LeetCode 238.除自身以外数组的乘积
  • GitLab
  • GitHub等平台形成的开源文化正在重塑继任者
  • 【区块链学习笔记】17:以太坊中的GHOST协议
  • 【SpringAI】10.结构化输出
  • 递归经典例题
  • SpringMVC入门:配置、映射与参数处理​
  • 前端笔试复盘 | 知识点总结
  • 春招准备之Java基础篇
  • 有哪几个网站可以做贸易网站备案要多少天
  • 【编程语言】Java基础语法回顾,大学期末考试速通版(选择填空、程序、实践)
  • Redis(85)Redis缓存与Memcached缓存有何区别?
  • 【iOS】自动引用计数(一)
  • 有什么免费的网站wordpress 采集器
  • 网站建设创新成果网站营销如何做
  • 设计模式-享元模式(Flyweight)