首页/云/Kubernetes 速查/local ephemeral storage 配额
配置与存储54 条

local ephemeral storage 配额

容器可写层、日志与 emptyDir 占用节点本地存储,可用 requests/limits 约束;超限会被驱逐(Evicted: ephemeral-storage)。

Kubernetes 速查云更新于 2026-10-13

临时存储为什么会撑爆节点

容器的可写层、容器日志以及临时目录都占用节点本地磁盘,这部分资源没有天然上限。节点磁盘被写满后,kubelet 会对节点上的 Pod 做驱逐,受影响的不一定是写日志的那一个。给工作负载显式声明临时存储的请求与上限,是让调度与驱逐都有据可依的唯一办法。

基本信息

适用平台Kubernetes 1.20+,由 kubelet 统计与执行
统计范围容器可写层、容器日志、临时目录
约束方式声明临时存储的请求与上限
超限后果容器被驱逐,事件原因标注为临时存储
关联机制节点驱逐阈值与服务质量等级

典型使用场景

  • 应用会写大量临时文件,需要限定用量避免撑满节点
  • 发布脚本或构建容器会解压大文件,必须给出预算
  • 多团队共用节点,防止某一方无节制占用磁盘
  • 排查容器被驱逐:确认事件原因是不是临时存储超限
  • 容量规划:把临时存储请求纳入节点可用量的计算

声明配额

声明配额
resources:
  requests:
    cpu: 500m
    memory: 512Mi
    ephemeral-storage: 1Gi     # 调度依据
  limits:
    memory: 1Gi
    ephemeral-storage: 2Gi     # 超限触发驱逐

查看用量

查看用量
kubectl describe node node1 | grep -A6 'Allocated resources'   # 节点已分配量
kubectl describe pod web-x | grep -i -A2 'ephemeral-storage'    # 单 Pod 的请求与用量
kubectl get pod web-x -o jsonpath='{.status.reason}'            # 是否被驱逐
df -h /var/lib/kubelet                                          # 节点磁盘水位

字段与现象读法

项目含义说明
requests调度时预留的量不设置按零计算,节点可能被写满
limits使用上限超过后容器被驱逐或限制写入
驱逐事件节点磁盘压力导致事件里会注明临时存储超限
节点水位本地磁盘使用率水位过高会触发节点级驱逐
被驱逐后 Pod 会重建,但节点磁盘上的日志与可写层数据不会保留。排查日志类问题时要在驱逐发生前采集,或把日志输出到标准输出由采集系统接管。
应用狂写日志打满节点磁盘时,先触发的是节点级驱逐,同一节点上其他业务的 Pod 会一起被赶走。给日志设置轮转与上限,比事后加配额更有效。

易错点

  • 不声明临时存储请求:调度器按零计算,节点磁盘写满后才暴露问题
  • 只设上限不设请求:调度时仍按零预留,多个大用量负载可以被塞到同一节点
  • 把日志长期留存在可写层:磁盘增长不可控,驱逐时现场日志一并丢失
  • 看到驱逐只查业务日志:事件里已写明是临时存储超限,应用报错往往只是结果

数据来源与参考

  • Kubernetes 官方文档 · 本地临时存储
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌