什么是临时存储
在 Kubernetes 中,Pod 临时存储是存储在节点上的运行时空间,用于临时保存 Pod 运行过程中产生的数据,例如/tmp、/root、/usr 等目录下的文件。临时存储的生命周期与 Pod 保持一致:Pod 被删除、重建、迁移或驱逐时,与其关联的临时存储也会被释放。
因此,写入临时存储的数据不具备持久性。需要在任务结束后继续使用的数据,例如数据集、实验结果、Checkpoint、模型文件、业务日志和长期缓存,不应只保存在容器本地路径中。
使用临时存储的常见场景包括:
不同集群、实例规格和负载形态的临时存储额度可能不同。判断当前负载可用额度时,请以控制台详情页展示的用量、配额、使用率和状态为准。
查看当前用量
开发环境、训练任务、大模型推理服务和通用服务均支持在详情页查看 Pod 临时存储。进入对应对象详情页后,打开 存储 页签,重点关注已用量、配额、使用率和状态。 以下以训练任务为例:
配置磁盘告警
对于长时间运行的训练任务、开发环境或服务,建议配置磁盘告警,在临时存储或节点磁盘水位升高时及时收到通知。- 在 告警 > 通知管理 中准备可用的通知目标或联系人组,并确认通知对象处于启用状态。详情请参见 管理告警通知目标。 没有启用的通知对象时,即使告警触发,平台也无法把告警发送给接收人。
-
在 告警 > 告警订阅 中创建告警订阅。详情请参见 创建告警订阅。
创建时展开 存储 分类。若要同时接收 Pod 临时存储和节点磁盘水位的严重、警告告警,请勾选以下告警项:
pod_disk_watermark-criticalpod_disk_watermark-warningnode_disk_watermark-criticalnode_disk_watermark-warning
清理高占用路径
当控制台显示临时存储占用过高时,应先停止继续向本地路径写入数据,再判断哪些数据需要保留。需要保留的数据应迁移到已挂载的 Volume;确认可丢弃的数据再执行清理。 常见可检查路径如下:
如果 Pod 已经被驱逐,临时存储中的数据可能无法恢复。后续重新运行前,应先调整写入路径,避免同样的问题再次发生。
将缓存和输出写入 Volume
从源头避免临时存储写满,关键是把会持续增长、需要保留或需要复用的数据写入已挂载的 Volume,而不是容器本地目录。常见数据包括依赖缓存、模型缓存、训练 Checkpoint、任务输出、业务日志和大文件下载结果。 挂载路径通常形如/volume/<resource-pool>。可以在启动命令、任务脚本或 ~/.bashrc 中显式配置常用工具的缓存目录:
示例:
$HOME,应优先查看该工具是否支持通过环境变量改写目录。
以 Claude Code 为例,默认配置和缓存通常写入 $HOME。如需将后续写入的数据放到已挂载的 Volume,可通过 CLAUDE_CONFIG_DIR 指定配置目录:
- 使用绝对路径,不要使用相对路径。
- 在工具启动前设置环境变量,例如写入
~/.bashrc或启动命令;仅在工具配置文件中填写路径通常不会生效。 - 修改后重启对应工具或进程,使新路径生效。
- Claude Code 不支持通过
--config-dir修改配置目录,应使用CLAUDE_CONFIG_DIR。 - 环境变量通常只影响后续新写入的数据,不会自动迁移旧目录中的文件,也不会迁移程序本体、项目文件或其他工具的缓存。
判断是否因临时存储写满被驱逐
如果训练任务失败、开发环境中断或服务实例异常,可进入对应对象详情页查看 事件。如果事件中出现与驱逐、磁盘压力、临时存储不足相关的信息,通常说明负载可能受到临时存储或节点磁盘水位影响。 排查时建议同时查看:
确认问题与临时存储相关后,应先调整写入路径或清理可丢弃数据,再重新启动开发环境、重提训练任务或重新发布服务。
常见问题
为什么容器内看到的磁盘空间和控制台不一致?
为什么容器内看到的磁盘空间和控制台不一致?
在容器内执行
df -h / 时,看到的通常是所在节点或容器视角下的磁盘空间,不等同于当前 Pod 的临时存储配额。判断 Pod 临时存储是否接近上限时,应以控制台 存储 页签中,Pod 临时存储 的用量、配额和状态为准。如何判断哪些文件需要优先清理?
如何判断哪些文件需要优先清理?
可以结合文件路径、文件修改时间和控制台用量变化判断。容器启动后新写入
/tmp、/root、/usr、$HOME 等本地路径的文件,更可能持续增加临时存储用量;镜像中自带的文件通常不需要作为清理重点。清理前请先确认文件是否仍被进程使用,是否需要迁移到 Volume。临时存储写满后数据还能恢复吗?
临时存储写满后数据还能恢复吗?
不一定。Pod 被驱逐、重建或迁移后,临时存储中的数据可能已经被释放。需要保留、复用或持续增长的数据,例如代码、数据集、Checkpoint、模型文件、实验结果、缓存和长期日志,应在运行过程中写入 Volume,不要等到 Pod 异常后再尝试恢复。
