k8s pod因节点临时存储(ephemeral-storage)不足而被驱逐

发布时间:2026/11/12 8:09:40

k8s pod因节点临时存储(ephemeral-storage)不足而被驱逐 es master三节点中的一个节点提示容器状态未知describe发现events有如下提示这个是Kubernetes Pod因节点临时存储ephemeral-storage不足而被驱逐Evicted的事件日志。Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning Evicted 15m kubelet Thenodewas low on resource: ephemeral-storage. Threshold quantity:3692958570, available: 3567316Ki. Container es-agent was using 1280Ki, request is0, has larger consumption of ephemeral-storage. Container kbagent was using 4Ki, request is0, has larger consumption of ephemeral-storage. Container exporter was using 20Ki, request is0, has larger consumption of ephemeral-storage. Container elasticsearch was using 976Ki, request is0, has larger consumption of ephemeral-storage. Normal Killing 15m kubelet Stopping container elasticsearch Normal Killing 15m kubelet Stopping container kbagent Normal Killing 15m kubelet Stopping container es-agent Normal Killing 15m kubelet Stopping container exporter Warning ExceededGracePeriod 15m kubelet Container runtime did notkillthe pod within specified grace period. Warning FailedPreStopHook 14m kubelet PreStopHook failed问题根因分析直接原因节点可用临时存储available: 3567316Ki ≈ 3.4Gi低于驱逐阈值Thresholdquantity: 3692958570 ≈ 3.52Gi触发机制kubelet 的节点压力驱逐Node Pressure Eviction连锁问题PreStop钩子执行失败14m前容器未在优雅终止期内停止ExceededGracePeriod最终被强制杀死核心问题容器未设置 ephemeral-storage 资源请求/限制从日志看所有容器 request is 0这意味着没有声明对临时存储的资源请求QoS等级为 BestEffort最低优先级节点资源不足时这类Pod会被最先驱逐解决方案1. 立即恢复临时措施# 查看Pod当前状态kubectl get podpod-name-nnamespace# 如果Pod已被删除检查是否有控制器Deployment/StatefulSet自动重建kubectl get deploy,sts-nnamespace# 手动删除Pod让其重建如果控制器存在kubectl delete podpod-name-nnamespace2. 根本解决资源配置在Pod/Deployment/StatefulSet中添加资源限制spec:containers:-name:elasticsearchresources:requests:ephemeral-storage:2Gi# 请求量limits:ephemeral-storage:4Gi# 限制量防止容器写爆磁盘-name:es-agentresources:requests:ephemeral-storage:500Milimits:ephemeral-storage:1Gi-name:kbagentresources:requests:ephemeral-storage:100Milimits:ephemeral-storage:200Mi-name:exporterresources:requests:ephemeral-storage:50Milimits:ephemeral-storage:100Mi3. 修复 PreStop 钩子PreStop钩子失败会导致优雅终止超时检查并修复# 查看Pod的PreStop配置kubectl get podpod-name-nnamespace-oyaml|grep-A5-B5preStop# 常见问题# - 钩子中调用的命令/API不存在# - 超时时间设置过短# - 网络问题导致钩子无法完成建议增加 terminationGracePeriodSeconds默认30秒spec:terminationGracePeriodSeconds:60# 增加到60秒containers:-name:elasticsearchlifecycle:preStop:exec:command:[/bin/sh,-c,curl -XPOST http://localhost:9200/_cluster/nodes/_local/shutdown]4. 节点层面优化# 查看节点磁盘使用情况kubectl describenodenode-name|grep-A5Allocated resources# 清理节点上的无用资源# - 清理已终止的容器日志# - 清理未使用的镜像# - 清理已完成的Poddockersystem prune-f# 如果是Docker运行时5. 配置驱逐阈值集群管理员修改kubelet配置调整更合理的阈值# /var/lib/kubelet/config.yamlevictionHard:imagefs.available:15%nodefs.available:10%ephemeral-storage.available:10%# 当前是约15%evictionSoft:ephemeral-storage.available:15%evictionSoftGracePeriod:ephemeral-storage.available:2m预防建议监控告警对节点磁盘使用率设置告警如 80%日志轮转配置容器日志轮转策略max-size, max-file持久化存储对需要大量存储的组件使用PVC而非emptyDir资源配额在命名空间级别设置ResourceQuota限制总存储使用apiVersion:v1kind:ResourceQuotametadata:name:compute-quotanamespace:your-namespacespec:hard:requests.ephemeral-storage:20Gilimits.ephemeral-storage:40Gi验证修复# 查看Pod资源请求/限制是否生效kubectl describe podpod-name-nnamespace|grep-A3QoS# 期望输出QoS Class: Burstable 或 Guaranteed有requests如果问题持续需要检查是否有日志文件过大未轮转是否有应用产生大量临时文件节点的emptyDir目录/var/lib/kubelet是否被其他Pod占满怎么看出来是临时存储的1. 直接从事件消息中识别日志里明确写了Thenodewas low on resource: ephemeral-storageephemeral-storage 就是临时存储的英文术语中文翻译临时存储、临时存储空间、临时卷存储2. 关键词对照表英文关键词中文含义说明ephemeral-storage临时存储Kubernetes官方术语ephemeral临时/短暂的表示非持久化emptyDir临时卷Pod级别临时存储的一种实现nodefs节点文件系统包含/var/lib/kubelet等imagefs镜像文件系统存放容器镜像3. 阈值表达式的含义Threshold quantity:3692958570, available: 3567316Ki这两个值的单位不一样3692958570 → 没有单位后缀默认是字节bytes换算3692958570 bytes ≈ 3.52 GiB3567316Ki → KiBKibibyte换算3567316 KiB ≈ 3.4 GiB所以实际含义是阈值:3.52GiB(硬驱逐阈值)可用:3.40GiB 可用阈值 → 触发驱逐4. Kubernetes存储类型对比存储类型生命周期是否临时典型用途ephemeral-storagePod生命周期✅ 是容器日志、镜像层、emptyDiremptyDirPod生命周期✅ 是临时缓存、共享数据hostPath节点生命周期❌ 否宿主机目录挂载PersistentVolume (PVC)独立于Pod❌ 否持久化数据数据库configMap/secretPod生命周期✅ 是配置文件、密钥5. ephemeral-storage 包含哪些内容/var/lib/kubelet/ ├── containers/# 容器可写层├── volumes/# emptyDir等临时卷├── pods/# Pod相关文件└──... /var/log/containers/# 容器日志/var/lib/docker/# 镜像层部分计入如何查看当前Pod的临时存储使用# 方法1查看Pod的详细状态kubectl describe podpod-name-nnamespace# 查找 Ephemeral Storage 相关行# 方法2查看节点上所有Pod的存储使用kubectltoppod-nnamespace--containers# 注top命令不直接显示存储需要结合以下命令# 方法3查看节点的存储分配情况kubectl describenodenode-name# 输出示例# Allocated resources:# ephemeral-storage: 15Gi (40%)7. 实际查看节点存储的命令# 登录到节点查看实际磁盘使用df-h/var/lib/kubelet# 输出示例# Filesystem Size Used Avail Use% Mounted on# /dev/sda1 100G 85G 15G 85% /var/lib/kubelet# 查看详细的目录占用du-sh/var/lib/kubelet/*|sort-hr|head-108. 日志中的request is 0含义Container es-agent was using 1280Ki, request is0容器实际使用了 1280 KiB 的临时存储但没有设置资源请求request0这意味着该Pod的QoS是 BestEffort最低优先级当节点资源不足时这种Pod会被最先驱逐9.快速验证命令bash# 查看Pod的QoS等级如果是BestEffort则没有requestskubectl get podpod-name-nnamespace-ojsonpath{.status.qosClass}# 查看Pod的资源请求kubectl get podpod-name-nnamespace-oyaml|grep-A10resources:总结如何一眼识别临时存储驱逐看关键词ephemeral-storage 或 临时存储看资源类型不是 memory 或 cpu看驱逐原因Evicted resource: ephemeral-storage看数值单位Ki、Mi、Gi或纯数字表示字节看容器使用using 多少request 是多少如果日志写的是 disk pressure 或 nodefs也是指磁盘/存储相关但 ephemeral-storage 是Kubernetes 1.8后的标准术语。
延伸阅读

更多相关文章

2026/11/12 8:09:40

2026山东APP定制开发行业优选服务商分析报告

一、行业概述与市场现状2026年,国内企业数字化建设进入AI深度融合新阶段,APP定制开发行业完成阶段性迭代升级。传统以“功能模板复刻、单一代码外包”为主的开发模式,已无法适配企业经营需求。当前市场核心趋势从“工具型软件开发”全面转向“…

2026/11/7 12:19:09

AIGC内容检测与反检测技术实战解析

1. 项目概述:检测平台升级与AIGC痕迹消除的挑战2026年内容检测平台的算法升级正在重塑数字内容生态。作为从业者,我亲历了三次重大检测算法迭代,这次升级带来的核心变化在于:平台开始采用多模态特征融合分析技术,能够同…

2026/11/11 14:31:21

Python 项目结构最佳实践:配置、请求、业务分开写,后期真的省事

适合个人开发者、AI 工具作者、脚本自动化玩家。 如果你现在的项目还把 API Key、请求逻辑、业务逻辑全写在一个文件里,这篇文章可以直接改掉你的写法。为什么项目一开始就要拆结构? 很多人做项目的时候,第一版通常都很简单: 一个…

2026/11/12 8:09:30

外省电工证能转过来吗?内部消息告诉你纸板电工证怎么考

外省电工证能转过来吗?内部消息告诉你纸板电工证怎么考 之前考的证在外省能不能转过来?这几乎是每个持证人心里的疑问,尤其是像南阳这样的应届工程类毕业生,刚刚步入职场,手里有个纸板电工证,可能就意味着多一份工作机会,少一份求职焦虑。但问题来了,…

2026/11/12 8:09:30

你考的电工证是哪种郑州报考避坑指南

你考的电工证是哪种郑州报考避坑指南 实操考试心里没底怕挂科?这是很多准备考电工证的朋友心里的真实想法。尤其是在郑州,越来越多的建筑、电力、维修等行业从业者开始关注特种作业证,尤其是电工证。但很多人对“你考的电工证是哪种”这个问题并不清楚,导…

2026/11/12 8:09:30

河北维修电工证查询良心建议:实操考试心里没底怕挂科?

河北维修电工证查询良心建议:实操考试心里没底怕挂科? 实操考试心里没底怕挂科?你不是一个人,很多在河北准备维修电工证考试的小伙伴都遇到过这种情况。尤其是安阳水利工程从业者,工作性质决定了必须持证上岗,但实操考试的流程、内容、评分标准却常常让…

2026/11/12 8:09:29

退役特种兵搬运工怎么报名特种作业证?实操考试心里没底怕挂科

退役特种兵搬运工怎么报名特种作业证?实操考试心里没底怕挂科 实操考试心里没底怕挂科,这事儿我懂,尤其是像你这种退役特种兵搬运工,虽然有部队经验,但特种作业证的考试内容和流程,跟部队训练可不一样。很多人在报名前都会担心自己能不能过,能不能顺利…

2026/11/12 8:04:29

孝感大悟电工证多久拿证?找工作的刚需怎么解决

孝感大悟电工证多久拿证?找工作的刚需怎么解决 你还在为没证耽误找工作发愁?尤其是像你这样急需特种作业证才能上岗的求职者,孝感大悟电工证成了你必须拿下的一张通行证。但你知道 多久拿证 、怎么高效拿到、考试难不难吗?别急,下面给你全盘托出。…

2026/11/11 12:42:59

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/12 0:04:01

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘 工地太忙根本没时间复习考试?你不是一个人。作为一名在南阳卧龙区干了七八年市政公用工程的电工,我深知这个问题的现实性。电工证不仅是工作的“入场券”,更是职业发展的“通行证”,但备考过程…

2026/11/12 0:04:01

双流电工证考别怕挂科!郑州报考避坑指南全攻略

双流电工证考别怕挂科!郑州报考避坑指南全攻略 实操考试心里没底怕挂科?双流电工证考在郑州报名,很多人因为不了解流程、准备不充分,白白浪费时间和金钱。作为三门峡应届工程类毕业生,我也曾经历过这样的焦虑。今天就从零开始,手把手教你如何避开郑州报…

2026/11/12 0:04:01

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少 之前考的证在外省能不能转过来?这个问题确实让不少准备换城市工作的朋友犯了难,尤其像电工证这种实操性很强的证书,很多人担心跨省后证书能不能继续用。其实,只要符合相关流程,是可以顺利转…

2026/11/11 20:27:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑