You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetApp iSCSI存储类临时存储限制失效,如何触发Pod重建?

解决基于存储类的临时卷满盘时Pod不重建的问题

当使用emptyDir并设置ephemeral-storage限制时,kubelet会监控节点本地临时存储的使用,超过限制后会驱逐重建Pod,这符合预期。但通过volumeClaimTemplate创建的、基于存储类的临时卷(比如你用的iSCSI存储),不属于kubelet默认监控的ephemeral-storage范畴,因此磁盘占满后不会触发Pod重建,导致后续任务失败。

以下是两种可行的解决方法:

方法1:添加存活探针检测磁盘使用率

直接在Pod模板中配置存活探针,定期检查卷的使用情况,当使用率达到阈值时触发Pod重启。这是最灵活的方式,仅针对目标Pod生效。

假设你的卷挂载路径为/builddir,示例配置如下:

livenessProbe:
  exec:
    command:
    - sh
    - -c
    - "df -h /builddir | awk 'NR==2 {print $5}' | sed 's/%//' | awk '{exit ($1 > 90) ? 1 : 0}'"
  initialDelaySeconds: 30  # Pod启动后30秒开始检测
  periodSeconds: 60        # 每60秒检测一次
  failureThreshold: 2      # 连续2次失败则重启Pod

你可以根据实际需求调整阈值(比如将90%改为95%)、检测间隔等参数。

方法2:集群级配置kubelet监控持久化卷存储

如果需要让所有Pod的持久化卷都被监控,可以修改kubelet的驱逐配置,让它将PVC卷的使用纳入ephemeral-storage的监控范围:

  1. 编辑kubelet的配置文件(通常路径为/var/lib/kubelet/config.yaml),添加或更新以下配置:
evictionHard:
  ephemeral-storage: 95%
evictionSoft:
  ephemeral-storage: 90%
evictionSoftGracePeriod:
  ephemeral-storage: 1m
evictionMaxPodGracePeriodSeconds: 30
  1. 重启kubelet服务使配置生效。

注意:这是集群级别的变更,会影响所有Pod,需要评估对其他业务的影响后再操作。

推荐优先使用方法1,既能精准控制目标Pod的行为,又无需修改集群全局配置。

内容的提问来源于stack exchange,提问作者Tamilan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 10:37:22