2 min read | by Jordi Prats
If we need to be able to share some data across containers (one generates the data and the other one consumes it) we can use an emptyDir to create a Volume to mount on both containers.
An emptyDir Volume stores data in a dynamically created directory on the k8s node. This directory only exists, along with it's data, as long as the pod exists on the node. Defining this Volume on a Pod allows us to mount it on as many containers as we want, for example:
apiVersion: v1
kind: Pod
metadata:
name: shared-volume-pod
spec:
containers:
- image: busybox
name: test-container1
volumeMounts:
- mountPath: /out
name: shared-volume
- image: busybox
name: test-container2
volumeMounts:
- mountPath: /in
name: shared-volume
volumes:
- name: shared-volume
emptyDir: {}
By adding the medium attribute to emptyDir que can request the volume to be in memory instead of disk-based:
apiVersion: v1
kind: Pod
metadata:
name: shared-volume-pod
spec:
containers:
- image: busybox
name: test-container1
volumeMounts:
- mountPath: /out
name: shared-volume
- image: busybox
name: test-container2
volumeMounts:
- mountPath: /in
name: shared-volume
volumes:
- name: shared-volume
emptyDir:
medium: Memory
Posted on 30/06/2021