现象以及排查过程:

k8s集群某个节点上的pod状态为Evicted,无cni0 flannel.1虚拟网口

使用命令kubectl delete pod xxx 重启该pod,无日志输出,状态不变

使用命令kubectl  get node,该节点是ready状态

使用命令kubectl describe pod xxx ,没有明显的报错信息

使用命令kubectl describe node xx ,最后出现有DiskPressure的关键字

ssh登录该节点,查看磁盘空间,使用率98%

到此,定位到问题是磁盘空间不足造成pod被驱逐

相关资料:

K8S 节点经常 DiskPressure 警告?分析问题将它解决掉! - 墨天轮

k8s Pod状态详解_张折耳的博客-CSDN博客_k8spod状态详解

K8S是否存在因DiskPressure驱逐pod,运维老鸟来剖析!

K8S资源回收机制 - linhaifeng - 博客园

查阅以上资料后,把关键部分总结下:

Kubelet 根据指标达到什么条件才会执行 Pod 驱逐

经过 Kubernetes 文档的介绍,Kubelet 会对下面指标进行判断,当到达设置的条件后,会执行强制驱逐 Pod:

  • memory.available<100Mi: 当内存下降到 100Mi 时 kubelet 开始驱逐 Pod 及其容器来释放磁盘空间。

  • nodefs.available<10%: 当 kubelet 相关存储可用的存储不足 10% 时开始驱逐 Pod 及其容器来释放磁盘空间。

  • imagefs.available<15%: 当容器运行时文件系统可用存储空间不足 15% 时开始驱逐 Pod,并且删除没有被使用的镜像来释放空间。

  • nodefs.inodesFree<5%: (仅 Linux 系统): 当容器运行时 inodes 可用存储空间不足 5% 时开始驱逐 Pod 及其容器来释放磁盘空间。

Kubernetes 触发 DiskPressure 时造成的影响

当触发 DiskPressure 告警时,会产生如下的影响:

  • 驱逐 Pod

  • 删除未使用的容器

  • 阻止新创建的 Pod 调度到该节点中

检查验证:

检查该节点上的镜像:docker images  一个镜像都没有了

检查该节点上的kubelet服务:systemctl status kubelet 发现有回收失败的信息

检查该节点上pod的事件:kubectl get events  发现有pod日志有diskpressure的信息

解决处理:

清理磁盘空间到根分区使用率85%以下

重启kubelet服务

重启有问题的pod

至此,全部恢复正常,pod都是Running状态

K8S DiskPressure造成pod被驱逐——筑梦之路相关推荐

  1. K8S中使用显卡GPU(N卡) —— 筑梦之路

    前些年做AI项目的时候经常用到显卡,大多数时候都是传统部署,对于资源的利用率并不高,而显卡也不便宜,K8S集群内调用显卡可以更加细致地进行显卡计算资源的分配,提高资源利用率. 之前记录和显卡相关的一些 ...

  2. Nginx SSL漏洞(SWEET32)扫描和修复 —— 筑梦之路

    1.扫描nmap -sV --script ssl-enum-ciphers -p 443 www.baidu.comnmap --script="ssl-enum-ciphers" ...

  3. 不关闭Selinux\Firewalld的情况下OpenSSH 9.0/9.1/9.2升级说明——筑梦之路

    前面写了一些文章,关于利用官方源码编译或者制作rpm包来升级openssh,修复安全漏洞 centos 7 制作openssh8.7/8.8/8.9/9.0 p1 rpm包升级--筑梦之路_筑梦之路的 ...

  4. 时间同步设置NTP和Chrony两种方式—— 筑梦之路

    之前写的:Chrony时间同步服务器的搭建--筑梦之路_筑梦之路的博客-CSDN博客_搭建chrony服务器 linux 下部署NTP服务器 时间同步_筑梦之路的博客-CSDN博客 操作系统:cent ...

  5. CentOS 8 安装freePBX 软交换电话软件——筑梦之路

    简单介绍: Freepbx是一个集成了Asterisk的工具,提供GUI (graphical user interface)用户图形界面.通过Freepbx可以十分方便的配置各类电话系统.由于Ast ...

  6. K8S的服务质量QoS —— 筑梦之路

    K8S中的应用服务质量(QoS)介绍 服务质量(QoS)类是Kubernetes的概念,它确定Pod的调度和驱逐优先级 Kubelet使用它来管理驱逐pod的顺序,以及使用高级CPU管理策略允许更复杂 ...

  7. K8S之taint\cordon\uncordon\drain使用案例——筑梦之路

    作用介绍:taint: 污点(查看污点.设置污点.取消污点) cordon: 封锁:标记节点不可调度 uncordon: 标记节点可以调度: drain: 驱逐节点上的pod如果一个node被标记为c ...

  8. K8S StatefulSet方式部署elasticsearch集群 —— 筑梦之路

    直接上yaml内容 # es-cluster.yaml apiVersion: apps/v1 # 设置控制器 kind: StatefulSet metadata:name: es-clustern ...

  9. k8s 部署zookeeper-kafka集群 —— 筑梦之路

    规划:三个zookeeper 三个kafka添加亲和性规则#直接上yaml#zookeeper-deploy.yamlapiVersion: apps/v1 kind: StatefulSet met ...

最新文章

  1. vue引用js文件的多种方式
  2. java中junit_【Java】Junit快速入门
  3. wordpress Oops! That page can’t be found.
  4. css animation动画完成后隐藏_css3动画简介以及动画库animate.css的使用
  5. memset,memcpy,strcpy 的区别
  6. java 查找链表中间元素_java查找链表中间元素_如何通过Java单次查找链表的中间元素...
  7. Hibernatel框架关联映射
  8. 切断数据感知控件,大大提升软件运行速度
  9. ES6标准入门(阮一峰)-阅读记录与心得
  10. 在ARM+LINUX上使用pppd拔号上网(GPRS)流程
  11. 多传感器融合定位-章节索引
  12. 十分钟了结MySQL information_schema
  13. 【计算机网络】IP地址详解
  14. Android studio2.0在app中设置背景图片及添加图片资源
  15. 中国象棋纯CSS版--冰极峰
  16. 用PS制作一只梦幻的小鹿插画
  17. 基于SSM实现的艺术品鉴定管理系统+App
  18. 2021年挖掘猫眼专业版电影票房数据
  19. XM 玻璃钢一体化泵站特点及使用寿命
  20. 多卡汇聚路由器、多网融合、弱网通信

热门文章

  1. GitHub封了41万俄罗斯开发者账户,开源真的无国界?
  2. 不会搭建Android知识框架,活该你成不了技术大牛!
  3. 干货!!史上最全Java学习视频
  4. Python 轻松解决从 K 个字符串数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合。(对比用库和不用库的方法)
  5. Errors报错记录
  6. 离线安装MySQL缺少libaio.so.1文件——并离线安装libaio.so.1
  7. C语言之负数的左移/右移运算
  8. RMAN的备份与恢复
  9. String.prototype.padStart()
  10. for循环结构(语句)的基本用法