17

Kubernetes features quite a few types of volumes, including emptyDir:

An emptyDir volume is first created when a Pod is assigned to a Node, and exists as long as that Pod is running on that node. As the name says, it is initially empty. Containers in the pod can all read and write the same files in the emptyDir volume, though that volume can be mounted at the same or different paths in each container. When a Pod is removed from a node for any reason, the data in the emptyDir is deleted forever.

...

By default, emptyDir volumes are stored on whatever medium is backing the node.

Is the emtpyDir actually mounted on the node, and accessible to a container outside the pod, or to the node FS itself?

Community
  • 1
  • 1
Adam Matan
  • 128,757
  • 147
  • 397
  • 562

2 Answers2

32

Yes it is also accessible on the node. It is bind mounted into the container (sort of). The source directories are under /var/lib/kubelet/pods/PODUID/volumes/kubernetes.io~empty-dir/VOLUMENAME

You can find the location on the host like this:

sudo ls -l /var/lib/kubelet/pods/`kubectl get pod -n mynamespace mypod -o 'jsonpath={.metadata.uid}'`/volumes/kubernetes.io~empty-dir
Janos Lenart
  • 25,074
  • 5
  • 73
  • 75
0

You can list all emptyDir volumes on the host using this command

df

To view only volumes mapped to a specific volume

df | grep -i cache-volume

where cache-volume is the volume name in your pod definition

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /cache
      name: cache-volume
  volumes:
  - name: cache-volume
    emptyDir: {}
Amado Saladino
  • 2,114
  • 23
  • 25