使用 emptyDir

在 Kubernetes 中,emptyDir 是一种简单的临时卷类型,为 Pod 在其生命周期内提供临时存储。它在 Pod 被分配到某个节点时创建,并在 Pod 从该节点移除时删除。

emptyDir 示例

该 Pod 创建了一个临时卷,挂载在 /data 路径,并与容器共享。

apiVersion: v1
kind: Pod
metadata:
  name: emptydir-demo
spec:
  containers:
    - name: app
      image: busybox
      command: ["sh", "-c", "echo hello > /data/hello.txt && sleep 3600"]
      volumeMounts:
        - mountPath: /data
          name: cache-volume
  volumes:
    - name: cache-volume
      emptyDir: {}

可选的 Medium 设置

您可以选择数据的存储位置:

emptyDir:
  medium: "Memory"
Medium描述
(默认)使用节点的磁盘、SSD 或网络存储,具体取决于您的环境
Memory使用 RAM(tmpfs)以实现更快访问(但数据是易失性的)

主要特性

特性描述
初始为空创建时无数据
容器间共享同一卷可被 Pod 中的多个容器使用
Pod 删除时销毁Pod 被移除时,卷也被销毁
节点本地卷存储在节点的本地磁盘或内存中
速度快适合对性能敏感的临时存储空间

常见用例

  • 缓存中间构建产物

  • 缓冲日志

  • 临时工作目录

  • 在同一 Pod 内的容器间共享数据(如 sidecar 容器)