ipvlan: operation not supported 导致的POD不断重启
情况描述
接到反馈有一台虚拟机HA迁移了,需要检查一下上面业务是否正常,由于是K8S node节点,正常情况下重启会自动恢复的,不过抱着严谨的态度,上去看了一眼。
问题:发现docker运行正常,但是业务POD一直在exit重启
排查处理
1)docker ps 都是正常启动的容器,但是没看到业务容器
2)docker ps -a 看到业务容器不断在重启,多实例加负载均衡,不影响正常访问,进一步处理
3)由于容器不断重启,考虑从系统日志查看是否存在异常,检查messages发现如下报错
CNI failed to retrieve network namespace path: cannot find network namespace for the terminated container "xxxxxxx3e26c018ad5becxxxxxx05784747xxx0xxx23"
Error adding xxxxxxx-xxxx_xxxx-26672-deploy-856886c77-sfmj4/40993xxxx73c915ad0xxxx1b9exxxb46ad2xxx091xxx24b to network xxxx-ipvlan/xxxx_k8s_network: failed to create ipvlan: operation not supported
5)上述报错提示无法加载CNI,因为不支持 ipvlan: operation not supported ,考虑应该是无法加载ipvlan导致POD不断重启
6)搜索发现这报错是ipvlan模块未加载或者不支持,系统重启不应该影响到系统模块的,很奇怪
7)按搜索内容检查模块,发现确实没有,其他机器都是正常能返回ipvlan
lsmod |grep ipvlan
modinfo ipvlan
8)尝试加载ipvlan,报错提示没有找到这个模块
modprobe ipvlan
modprobe: FATAL: Module ipvlan not found.
9)尝试去找这个模块的提供软件,发现已经安装了,但是就是没有
yum provides ipvlan
解决办法
10)找领导帮忙分析,发现该主机存在多个内核版本的记录,某一个版本是存在这个模块的,当前内核版本没有,将模块的ko文件拷贝到当前内核对应目录过去,然后安装
insmod /lib/modules/3.xx.x-xxxx.1.1.el7.x86_64/extra/ipvlan/ipvlan.ko
11)加载后,就能找到这个模块了,此时POD已经能正常启动,问题解决
总结分析
这个问题发生的根本原因是内核存在多个版本,升级不彻底,导致重启后内核模块缺失。
1)这个问题很容易定位到是模块缺失导致的,但是modprobe提示缺失这个模块需要怎么处理在此之前还不了解
2)这个案例实际已经通过对比找到差异,但是没有恢复的手段,不是单一文件拷贝就能恢复的
3)内核升级操作前,还是建议备份数据,然后尝试重启验证的,否则后期重启出现问题摸不着头脑
4)对于内核模块还是不了解,只知道查询,不记得安装和查看,这个需要加强(查看、安装、关联、相关文件、验证、哪些可用)
信息补充
处理这个问题,顺带加深了一下关于内核模块以及动态库的知识,补充如下:
Linux中的动态链接库.so文件和内核模块.ko文件都是用于在运行时动态加载的代码
内核模块主要用于在内核中添加或修改功能,而动态链接库用于在用户程序中添加或修改功能
内核模块与动态链接库的区别:
1)加载位置不同:.so文件是在用户空间加载的.ko文件是在内核空间加载的
2)加载方式不同:.so文件通常通过dlopen等函数在运行时动态加载内核模块可以通过insmod命令加载,或者在系统启动时作为内核启动参数指定
3)对依赖的处理不同:内核模块之间可能有依赖关系,必须先加载依赖的模块用户空间的.so文件可以通过动态链接器来解决依赖
4)编译方式不同:内核模块需要专门的内核编译环境用户空间的.so文件可以使用普通的编译器和链接器
5)版本控制不同:内核模块通常有版本控制,在加载时会检查模块的版本是否与内核兼容
相关文章:
ipvlan: operation not supported 导致的POD不断重启
情况描述 接到反馈有一台虚拟机HA迁移了,需要检查一下上面业务是否正常,由于是K8S node节点,正常情况下重启会自动恢复的,不过抱着严谨的态度,上去看了一眼。 问题:发现docker运行正常,但是业…...
组蛋白乳酸化和RNA甲基化如何联动?请大数据把这个思路推给科研人
在细胞生物学中,基因表达调控是决定细胞功能与命运的核心过程之一。组蛋白作为修饰性蛋白,在调控基因转录中起着至关重要的作用。近年来,科学家们发现,组蛋白的多种化学修饰(如甲基化、乙酰化、磷酸化等)影…...
操作文件-Path
Java操作文件-Path Paths 参数说明 first:必选参数,表示路径的第一个组件。more:可选参数,表示路径的其他组件,可以传入多个。 创建路径对象 // 创建一个表示当前工作目录的Path对象 Path currentPath Paths.get…...
RAC(Teamcenter )开发,Bom行解包和打包的方法
1、打包 UnpackAllAction allAction new UnpackAllAction((AbstractBOMLineViewerApplication) currentApplication, "packAllAction"); new Thread(allAction).start();2、解包 UnpackCommand command new UnpackCommand(bomLine); command.executeModal();3、注…...
log4j2漏洞练习
log4j2 是Apache的一个java日志框架,我们借助它进行日志相关操作管理,然而在2021年末log4j2爆出了远程代码执行漏洞,属于严重等级的漏洞。apache log4j通过定义每一条日志信息的级别能够更加细致地控制日志生成地过程,受影响的版本…...
OpenEuler安装部署教程
目录 OpenEuler安装部署教程 MobaXterm一款全能的远程工具 yum安装软件 vim编辑器(了解) 防火墙 常用命令 网络工具netstat & telnet 进程管理工具top ps 磁盘free、fdisk 用户、组(了解) 权限(了解&am…...
Canto - hackmyvm
简介 靶机名称:Canto 难度:简单 靶场地址:https://hackmyvm.eu/machines/machine.php?vmCanto 本地环境 虚拟机:vitual box 靶场IP(Canto):192.168.130.53 windows_IP:192.1…...
【数据结构进阶】手撕红黑树
🔥个人主页: Forcible Bug Maker 🔥专栏: C || 数据结构 目录 🌈前言🔥红黑树的概念🔥手撕红黑树红黑树结点的定义红黑树主体需要实现的成员函数红黑树的插入findEmpty和Size拷贝构造析构函数和…...
【C++从小白到大牛】类和对象
目录 一、面向过程和面向对象初步认识 二、类的引入 三、类的定义 类的成员函数两种定义方式: 1. 声明和定义全部放在类体中 2. 类声明放在.h文件中,成员函数定义放在.cpp文件中 成员变量命名规则的建议: 四、类的访问限定符 【访问限…...
Kafka 为什么这么快的七大秘诀,涨知识了
我们都知道 Kafka 是基于磁盘进行存储的,但 Kafka 官方又称其具有高性能、高吞吐、低延时的特点,其吞吐量动辄几十上百万。 在座的靓仔和靓女们是不是有点困惑了,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间。…...
一文解决3D车道线检测:最新单目3D车道线检测综述
前言 场景理解是自动驾驶中极具挑战的任务,尤其是车道检测。车道是道路分割的关键,对车辆安全高效行驶至关重要。车道检测技术能自动识别道路标记,对自动驾驶车辆至关重要,缺乏这项技术可能导致交通问题和事故。车道检测面临多种…...
稳中向好,今年新招6000人
团子校招 近日,美团宣布开启面向 2025 届的校园招聘,招聘规模达 6000 人。 虽然相比京东(宣布招聘 16000 人)稍有逊色,但 6000 这个校招规模可一点不少。 要知道,京东是重自营的传统电商,16000 …...
使用kettle开源工具进行跨库数据同步
数据库同步可以用: 1、Navicat 2、Kettle 3、自己写代码 调用码神工具跨库数据同步 -连接 4、其它 实现 这里使用Kettle来同步,主要是开源的,通过配置就可以实现了 Kettle的图形化界面(Spoon)安装参考方法 ht…...
Golang | Leetcode Golang题解之第307题区域和检索-数组可修改
题目: 题解: type NumArray struct {nums, tree []int }func Constructor(nums []int) NumArray {tree : make([]int, len(nums)1)na : NumArray{nums, tree}for i, num : range nums {na.add(i1, num)}return na }func (na *NumArray) add(index, val …...
Golang | Leetcode Golang题解之第301题删除无效的括号
题目: 题解: func checkValid(str string, lmask, rmask int, left, right []int) bool {cnt : 0pos1, pos2 : 0, 0for i : range str {if pos1 < len(left) && i left[pos1] {if lmask>>pos1&1 0 {cnt}pos1} else if pos2 <…...
【Story】《程序员面试的“八股文”辩论:技术基础与实际能力的博弈》
目录 程序员面试中的“八股文”:助力还是阻力?1. “八股文”的背景与定义1.1 “八股文”的起源1.2 “八股文”的常见类型 2. “八股文”的作用分析2.1 理论基础的评价2.1.1 助力2.1.2 阻力 3. 实际工作能力的考察3.1 助力3.2 阻力 4. 面试中的背题能力4.…...
初步了解泛型
目录 泛型的引入 泛型 泛型 泛型类 泛型的上界 泛型的引入 之前学习的数组里面是存放着整型或者自字符串中一种的数组,如果想要在一个数组里面放多种类型数据,我们该怎么去做呢?Object类或许是一个好的解决方法,因为Object类…...
【C#】.net core 6.0 webapi 使用core版本的NPOI的Excel读取数据以及保存数据
欢迎来到《小5讲堂》 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 背景读取并保存NPOI信息NPOI 插件介绍基本功能示例代码写入 Excel 文件…...
C++推荐的oj网站
洛谷 信息学奥赛一本通 C语言网 codeforces 杭电oj...
springmvc处理http请求的底层逻辑
http-nio-8088-Poller线程中在org.apache.tomcat.util.net.NioEndpoint.Poller#run这个函数里循环检测selector,若发现有SocketEvent.OPEN_READ事件则会将SelectionKey.attachment中的内容作为入参包装成runable,然后由org.apache.tomcat.util.threads.T…...
干货满满,从零到一:编程小白如何在大学成为编程大神?
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
前端-如何通过docker打包Vue服务成镜像并在本地运行(本地可以通过http://localhost:8080/访问前端服务)
1、下载安装docker,最好在vs code里安装docker的插件。 下载链接:https://www.docker.com/products/docker-desktop 🎉 Docker 简介和安装 - Docker 快速入门 - 易文档 (easydoc.net) 2、准备配置文件-dockerfile文件和nginx.conf文件 do…...
零基础学习【Mybatis】这一篇就够了
Mybatis 查询resultType使用resultMap使用单条件查询多条件查询模糊查询返回主键 动态SQLifchoosesetforeachsql片段 配置文件注解增删改查结果映射 查询 resultType使用 当数据库返回的结果集中的字段和实体类中的属性名一一对应时, resultType可以自动将结果封装到实体中 r…...
Shell入门(保姆级教学)
Shell是一种命令行解释器,也是一种脚本语言,广泛应用于Unix和类Unix系统中,例如Linux。它是用户与操作系统内核交互的桥梁,通过Shell可以执行系统命令、管理文件系统、处理文本数据等。本文将带你入门Shell编程,涵盖基…...
【JDK11和JDK8并行与切换】
一、JDK11安装 1、下载jdk11,点击.exe安装在:C:\Program Files\Java\jdk-11\ 2、配置JAVA_HOME 变量名为JAVA_HOME 变量值为jdk安装路径 3、配置PATH 找到系统变量里的PATH 双击或者单击后点击编辑 点击右上角的新建 新建两条 %JAVA_HOME%\bin …...
vue大数据量列表渲染性能优化:虚拟滚动原理
前面咱完成了自定义JuanTree组件各种功能的实现。在数据量很大的情况下,我们讲了两种实现方式来提高渲染性能:前端分页和节点数据懒加载。 前端分页小节:Vue3扁平化Tree组件的前端分页实现 节点数据懒加载小节:Element Tree Plu…...
昇思25天学习打卡营第1天|快速入门
目录 昇思MindSpore介绍MindSpore的API来快速实现一个简单的深度学习模型通过资料更深入的了解昇思MindSpore 昇思MindSpore介绍 今天有幸学习了昇思MindSpore,让我们来简单的了解一下它 昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行…...
LinkedList 实现 LRU 缓存
LRU(Least Recently Used,最近最少使用)缓存是一种缓存淘汰策略,用于在缓存满时淘汰最久未使用的元素。 关键: 缓存选什么结构? 怎么实现访问顺序? import java.util.*;public class LRUCac…...
ubuntu安装workon
pip install virtualenvpip install virtualenvwrapper配置virtualenvwrapper。在你的shell配置文件(比如.bashrc,.bash_profile或.zshrc)中添加以下内容:export WORKON_HOME$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON/…...
(面试必看!)锁策略
文章导读 引言考点一、重量级锁 VS 轻量级锁1、定义与原理2、主要区别3、适用场景 考点二、乐观锁 VS 悲观锁1、悲观锁(Pessimistic Locking)2、乐观锁(Optimistic Locking)3、总结 考点三、读写锁1、读写锁的特性2、读写锁的实现…...
嘉兴公司网站模板建站/开发一个网站的步骤流程
2011年是个不同寻常的一年,专科大二了充满着迷茫、但是抱着对未来充满希望的来到了提高班;2012年锐变着、成熟了、强大着、收获着…… 这一年的全局图: 思想上:来到在提高班体会最深的就是:学习如何为人处事、先学会做人再谈学问、…...
如何查公司网站谁家做的/电商网
本文实例讲述了Hibernate分页的两种实现方法。分享给大家供大家参考,具体如下:1. criteria分页public Page getPage(int currentPage,int pageSize,Criterion...crts){Criteria csession.createCriteria(House.class);List listnull;for (int i 0; i &l…...
成都网络推广平台/引擎seo如何优化
下面介绍两种编译方式:1、在已有的PHP上编译pthreads扩展注:需要动态加载pthreads模块,之前在编译php时必须启用--enable-maintainer-zts;否则需要重新编译PHP。pthreads源码包下载地址:http://pecl.php.net/package/p…...
wordpress 积分插件/免费优化网站排名
安装xtrabackup[rootnode1 ~]# yum install percona-xtrabackup完全备份节点一修改配置文件,设置为每张表单独一个表空间,此项必须在安装数据库的时候就设置[rootnode1 ~]# vim /etc/my.cnf[mysqld]innodb_file_per_tableON创建备份目录[rootnode1 ~]# m…...
学校网站建设团队/百度seo优化方法
Equivalent Strings 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid84562#problem/E 题意: 给出两个字符串,确定是否相等。一个字符串分割成相同大小的两半a1和a2,另一个字符串分割成相同大小的成两半b1和b2。 以下是正确…...
dede旅游网站源码/app推广赚钱平台
初试成绩基本要求对于报考相同专业的全日制和非全日制研究生,报考条件相同的情况下,执行统一的进入复试的基本初试成绩要求。考生符合硕士研究生招生条件要求,初试成绩达到教育部规定的2020年A类考生进入复试的基本要求。“退役大学生士兵专项…...