K8S DiskPressure造成pod被驱逐——筑梦之路
现象以及排查过程:
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被驱逐——筑梦之路相关推荐
- K8S中使用显卡GPU(N卡) —— 筑梦之路
前些年做AI项目的时候经常用到显卡,大多数时候都是传统部署,对于资源的利用率并不高,而显卡也不便宜,K8S集群内调用显卡可以更加细致地进行显卡计算资源的分配,提高资源利用率. 之前记录和显卡相关的一些 ...
- Nginx SSL漏洞(SWEET32)扫描和修复 —— 筑梦之路
1.扫描nmap -sV --script ssl-enum-ciphers -p 443 www.baidu.comnmap --script="ssl-enum-ciphers" ...
- 不关闭Selinux\Firewalld的情况下OpenSSH 9.0/9.1/9.2升级说明——筑梦之路
前面写了一些文章,关于利用官方源码编译或者制作rpm包来升级openssh,修复安全漏洞 centos 7 制作openssh8.7/8.8/8.9/9.0 p1 rpm包升级--筑梦之路_筑梦之路的 ...
- 时间同步设置NTP和Chrony两种方式—— 筑梦之路
之前写的:Chrony时间同步服务器的搭建--筑梦之路_筑梦之路的博客-CSDN博客_搭建chrony服务器 linux 下部署NTP服务器 时间同步_筑梦之路的博客-CSDN博客 操作系统:cent ...
- CentOS 8 安装freePBX 软交换电话软件——筑梦之路
简单介绍: Freepbx是一个集成了Asterisk的工具,提供GUI (graphical user interface)用户图形界面.通过Freepbx可以十分方便的配置各类电话系统.由于Ast ...
- K8S的服务质量QoS —— 筑梦之路
K8S中的应用服务质量(QoS)介绍 服务质量(QoS)类是Kubernetes的概念,它确定Pod的调度和驱逐优先级 Kubelet使用它来管理驱逐pod的顺序,以及使用高级CPU管理策略允许更复杂 ...
- K8S之taint\cordon\uncordon\drain使用案例——筑梦之路
作用介绍:taint: 污点(查看污点.设置污点.取消污点) cordon: 封锁:标记节点不可调度 uncordon: 标记节点可以调度: drain: 驱逐节点上的pod如果一个node被标记为c ...
- K8S StatefulSet方式部署elasticsearch集群 —— 筑梦之路
直接上yaml内容 # es-cluster.yaml apiVersion: apps/v1 # 设置控制器 kind: StatefulSet metadata:name: es-clustern ...
- k8s 部署zookeeper-kafka集群 —— 筑梦之路
规划:三个zookeeper 三个kafka添加亲和性规则#直接上yaml#zookeeper-deploy.yamlapiVersion: apps/v1 kind: StatefulSet met ...
最新文章
- vue引用js文件的多种方式
- java中junit_【Java】Junit快速入门
- wordpress Oops! That page can’t be found.
- css animation动画完成后隐藏_css3动画简介以及动画库animate.css的使用
- memset,memcpy,strcpy 的区别
- java 查找链表中间元素_java查找链表中间元素_如何通过Java单次查找链表的中间元素...
- Hibernatel框架关联映射
- 切断数据感知控件,大大提升软件运行速度
- ES6标准入门(阮一峰)-阅读记录与心得
- 在ARM+LINUX上使用pppd拔号上网(GPRS)流程
- 多传感器融合定位-章节索引
- 十分钟了结MySQL information_schema
- 【计算机网络】IP地址详解
- Android studio2.0在app中设置背景图片及添加图片资源
- 中国象棋纯CSS版--冰极峰
- 用PS制作一只梦幻的小鹿插画
- 基于SSM实现的艺术品鉴定管理系统+App
- 2021年挖掘猫眼专业版电影票房数据
- XM 玻璃钢一体化泵站特点及使用寿命
- 多卡汇聚路由器、多网融合、弱网通信
热门文章
- GitHub封了41万俄罗斯开发者账户,开源真的无国界?
- 不会搭建Android知识框架,活该你成不了技术大牛!
- 干货!!史上最全Java学习视频
- Python 轻松解决从 K 个字符串数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合。(对比用库和不用库的方法)
- Errors报错记录
- 离线安装MySQL缺少libaio.so.1文件——并离线安装libaio.so.1
- C语言之负数的左移/右移运算
- RMAN的备份与恢复
- String.prototype.padStart()
- for循环结构(语句)的基本用法