Kubernetes集群可能存在的问题

  • 基础架构守护程序问题: NTP服务关闭
  • 硬件问题:CPU,内存或磁盘损坏 内核问题:内核死锁,文件系统损坏
  • 容器运行时问题:运行时守护程序无响应

当Kubernetes中节点发生上述问题,在整个集群中,k8s服务组件并不会感知以上问题,就会导致pod仍会调度至问题节点。

Node-problem-detector

为了解决这个问题,社区引入了守护进程node-problem-detector,从各个守护进程收集节点问题,并使它们对上游层可见。

Kubernetes节点诊断的工具,可以将节点的异常,例如:

  • Runtime无响应;
  • Linux kernel无响应;
  • 网络异常 ;
  • 文件描述符异常;
  • 硬件问题如cpu,内存或者磁盘故障。

故障分类

问题汇报手段

Node-problem-detector通过设置NodeCondition或者创建event对象来汇报问题。

  • NodeCondition: 针对永久性故障,会通过NodeCondition来改变节点状态
  • Event:临时故障通过event来提醒相关对象,比如通过当前节点运行的所有pod。

动手实践

1、下载安装包

helm repo add deliveryhero https://charts.deliveryhero.io/
helm pull deliveryhero/node-problem-detector
tar -zxvf node-problem-detector-2.0.9.tgz

2、修改image

vi node-problem-detector/values.yaml
image:repository: cncamp/node-problem-detectortag: v0.8.10pullPolicy: IfNotPresent

3、安装

helm install npd ./node-problem-detector

查看状态

4、制造异常

sudo sh -c "echo 'kernel: BUG: unable to handle kernel NULL pointer dereference at TESTING' >> /dev/kmsg"
#查看节点信息
kubectl  describe nodes ops-node-1

可以看到通过KernelOops这样的一个event把消息通知到了Kubernetes,只是起到一个通知的作用,还需要集成监控告警系统来完善。

5、使用插件pod启用npd

如果你使用的是自定义集群引导解决方案,不需要覆盖默认配置,可以利用插件Pod进一步自动化部署。
创建node-strick-detector.yaml,并在控制平面节点上保存配置到插件Pod的目录 /etc/kubernetes/addons/node-problem-detector

6、npd的异常处理行为

  • NPD只负责获取异常事件/并修改node condition,不会对节点状态和调度产生影响
 lastHeartbeatTime: "2022-03-02T14:12:01Z"lastTransitionTime: "2022-03-02T13:51:57Z"message: kernel has no deadlockreason: KernelHasNoDeadlockstatus: "False"type: KernelDeadlock
  • 需要自定义控制器,监听NPD汇报的condition, taint node,阻止pod调度至故障节点
  • 问题修复后,重启NPDPod来清理错误事件

kubernetes基于node-problem-detector实现异常节点检测相关推荐

  1. Node Problem Detector

    Have a nice day! ❤️ 什么是 NPD NPD(Node Problem Detector) 是一个可监控节点的健康状况并检测常见节点问题(例如硬件.内核或容器运行时问题等等)的开源项 ...

  2. 基于网络索引树的异常轨迹检测算法

    针对轨迹数据的运动规律和特征,结合空间划分的方法,提出本文的基于网络索引的异常轨迹检测方法. 实验结果表明,该算法可提高异常轨迹挖掘效率,且更有现实意义. 该算法不足:对参数比较敏感,目前(2014) ...

  3. ICML 2022 重思考为图结构数据异常检测设计图神经网络 | 图数据异常节点检测 | 论文解读和代码复现

    文章目录 一.引言 二.背景与挑战 三.论文主要内容 四.结果分析 五.代码复现 1. 环境配置 2. 结果复现 一.引言 Rethinking Graph Neural Networks for A ...

  4. 【图像检测】基于 AlexNet 和 SVM 实现异常螺母检测附matlab代码

    1 内容介绍 考虑到异常检测问题中正负样本严重失衡,难以满足卷积神经网络训练对样本的要求,提出了基于AlexNet模型的异常检测模型.在数据预处理阶段,通过隔帧采样的方式生成3组训练数据,并利用预训练 ...

  5. 【缺陷检测】基于matlab AlexNet和SVM异常螺母检测【含Matlab源码 2147期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [缺陷检测]基于matlab形态学水果蔬菜缺陷检测[含Matlab源码 820期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2 ...

  6. Graph Anomaly Detection with Deep Learning——节点检测

    节点检测算法分类 ANOS ND on Plain Graphs 平面图上的节点异常检测 传统的异常检测方法 基于网络表示的异常检测方法 ANOS ND on Attributed Graphs 属性 ...

  7. 【学习笔记】行人异常行为检测的综述

    第一次发博客,想记录一下最近所学的东西.目前课题研究方向大致为异常检测,可能会做到校园的异常行为检测,故从知网上搜到了一篇比较新的基于深度学习的人群异常行为检测综述,在这里做一个总结,方便日后的查看. ...

  8. 视频异常行为检测网络

    对视频中的异常行为进行检测十分有用,比如可以通过监控视频分析流水线车间或者实验室中的异常行为,这是一类比较简单的情形. 因为在流水线车间,设备使用正确,衣着装备佩戴正确就是正常,否则就是异常. 在实验 ...

  9. 在Unity中创建基于Node节点的编辑器 (二) 窗口序列化

    孙广东  2018.5.13 csdn 的产品 , 真垃圾, 不想吐槽了, 文章保存就丢!     没办法  .    怎么不满意, 还是得继续用, 哎~~~ 第二部分 在Unity中序列化基于节点的 ...

最新文章

  1. .axf文件_干货!STM32晶振的更改,BIN文件的生成
  2. LAMP编译安装之———httpd
  3. CentOS7配置ntp服务
  4. Codeforces 671E Organizing a Race (贪心、线段树)
  5. 10/100. Majority Element
  6. phpcmsV9:后台无法选择模板
  7. Maven学习总结(18)——深入理解Maven仓库
  8. PS把一张白纸里的黑色图形抠出来
  9. 联想网络同传系统用户手册(联想EDU应用用户手册)[联想硬盘保护,联想网络控制工具]
  10. coin3D中导入机器人模型
  11. Topic 10. 单因素 Logistic 回归分析—单因素分析表格
  12. 买硬盘需要知道哪些知识?
  13. AD转换器输入之前接一个电压跟随器是为什么?
  14. ISO七层协议与功能
  15. DX11与多线程渲染
  16. Arrays.copyOf 编译器提示 Usage of API documented as @since 1.6+ less... (Ctrl+F1) This inspection finds
  17. 群晖服务器+微信同步,群晖服务器 云同步
  18. 如何完美解决Sqoop导入导出MySQL数据错位问题
  19. 常用转接IC,转接芯片整理汇总
  20. 如何评价ERP实施绩效 (zt)

热门文章

  1. 在阿里云上部署nodejs服务 + https
  2. mc服务器皮肤和别人显示一样,我的世界获得别人皮肤,国际自制皮肤怎么让别人看到...
  3. JAVA 菜单设置快捷键
  4. 软件测试——金融测试类面试题,看完直接去面试了
  5. python382怎么用_手把手教你使用python自动打包 上传应用分发
  6. java 多线程。 编写10个线程,第一个线程从1加到10,第二个线程第11加到20,。。。第10个线程从91加到100.最够把10个线程结果相加
  7. Airbnb的开源项目Lottie简易实现动画
  8. 字体图标iconfont无法用color控制和设置颜色的解决方案
  9. 计算机基础-了解软硬件-00:文章内容规划、了解软件和硬件的区别
  10. Mybits与Hibernate的区别