内存介质临时目录
临时目录默认落在节点磁盘上,切换到内存介质后改用内存文件系统,读写速度显著提升且不怕磁盘写入压力。代价是它的用量计入容器内存:往里面写数据就等于占用容器内存预算。因此使用内存介质时必须同时规划容量上限与内存限制。
基本信息
| 适用平台 | Kubernetes 1.20+ |
|---|---|
| 数据生命周期 | 随 Pod 一起创建与销毁 |
| 存储介质 | 默认节点磁盘,可切换为内存 |
| 容量控制 | 可设置容量上限 |
| 资源关系 | 内存介质用量计入容器内存限制 |
典型使用场景
- 应用需要高速临时缓存,例如会话暂存与中间结果
- 数据库容器的临时排序空间,避免落在磁盘上
- 需要写入大量临时文件但不想消耗节点磁盘
- 合规要求敏感临时数据不落盘
- 多容器共享一个临时目录做进程间数据交换
内存介质临时目录
内存介质临时目录
volumes:
- name: tmp
emptyDir:
medium: Memory # 使用内存介质
sizeLimit: 64Mi # 容量上限
containers:
- name: app
image: registry.example.com/app:1.26.0
volumeMounts:
- name: tmp
mountPath: /tmp/work
resources:
limits:
memory: 512Mi # 需把临时目录用量算进总预算参数读法
| 字段 | 含义 | 注意点 |
|---|---|---|
| 介质类型 | 数据落在内存还是磁盘 | 内存介质读写快但占内存 |
| 容量上限 | 该目录可用的最大空间 | 不设置时边界不明确 |
| 内存限制 | 容器整体内存上限 | 应包含临时目录的用量 |
| 挂载路径 | 容器内的目录位置 | 多容器可共享同一目录 |
临时目录的生命周期跟随 Pod:容器重启时数据仍在,Pod 被删除或重建时数据消失。需要跨重启保留的数据应使用持久卷。
内存介质的写入会占用容器内存配额。应用往里写的数据量接近内存上限时,进程会先被内存回收机制终止,日志里看到的是内存超限而不是磁盘错误。