更新时间:2026-05-27 GMT+08:00
概述
临时存储卷(EmptyDir)是为需要额外存储空间,但不关心数据在容器重启后是否保留的应用程序专门设计的存储类型。它的核心特征是与Pod 的生命周期强绑定,随Pod的创建而分配,随Pod的停止或删除而彻底销毁。
典型使用场景
- 缓存与临时计算:将不常用的数据转移到临时存储中以缓解内存压力,或作为大量数据处理时的中间计算结果暂存区。
- 只读数据注入:配合ConfigMap或 Secret,以文件形式向 Pod 中注入配置文件或密钥凭据。
- 内存介质加速:将底层介质配置为内存(Memory),为应用提供极低延迟、极高吞吐的临时读写空间。
- 大镜像与海量日志落盘(空间扩容):CCI默认为每个Pod免费提供30GiB 的临时存储空间(与系统盘共享)。当业务镜像解压后过大,或应用需要向rootfs及emptyDir写入海量临时数据时,支持通过参数进行自定义扩容以满足业务需求。
主要参数
在使用YAML创建包含临时存储的工作负载时,需精准配置以下两类参数:
- emptyDir存储卷参数:
- medium:指定底层存储介质。不填则默认使用常规磁盘;若配置为 "Memory",则使用物理内存作为存储介质,读写速度极快。
- sizeLimit:指定该临时卷的容量限制。该参数仅在 medium 配置为 "Memory" 时才会生效。不配置可能导致无限制使用内存。
- extraEphemeralStorage临时空间扩容参数:
- sizeInGiB:在系统默认的30GiB基础上,需要额外扩容的容量大小。
- 取值限制:填写的数字必须在0到994之间(单位为GiB)。
高危操作提示
- 数据永久丢失:临时存储卷不具备持久化特性。一旦 Pod 发生停止、重启或被删除,写入其中的数据将被永久清空,请勿在此存放核心业务数据。
- 内存溢出(OOM):当 emptyDir.medium设为 "Memory" 时,其占用的内存会从 Pod 申请的总内存配额中直接扣除。若容器内进程申请的内存加上 EmptyDir 写入的数据量超过了 Pod 内存上限,将引发 OOM 异常导致容器崩溃。建议将 sizeLimit 设置为 Pod 内存申请量的 50% 左右。
- 实例启动延迟:配置extraEphemeralStorage扩展存储空间时,底层系统需要耗费时间额外分配和挂载磁盘资源。因此,配置了扩容的工作负载,其创建和启动速度会略慢于未扩容的常规负载。