Creating volumes

This page explains how to create Volume resources in your cluster. For more details, see the Kubernetes documentation about Volumes.

Using Volumes with Deployments

You can create a Deployment of Pods where each Pod contains one or more Volumes. The following Deployment manifest describes a Deployment of three Pods that each have an emptyDir Volume.

In this example:

  • The metadata: name field specifies a Deployment named volumes-example-deployment.
  • The Pod template specification includes a volumes field that describes an emptyDir volume named cache-volume.
  • The container specification includes a volumeMounts: field that specifies that the Volume named cache-volume is mounted at the file path /cache.
  • The manifest file is named volumes-demo.yaml.
apiVersion: apps/v1 kind: Deployment metadata:  name: volumes-example-deployment spec:  replicas: 3  selector:  matchLabels:  app: demo  template:  metadata:  labels:  app: demo  spec:  containers:  - name: test-container  image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0  volumeMounts:  - mountPath: /cache  name: cache-volume  volumes:  - name: cache-volume  emptyDir: {} 

To create a Deployment from this manifest file, run the following command:

kubectl apply -f volumes-demo.yaml 

Verify that your Deployment is running correctly and has the expected Volume with this command:

kubectl describe pods volumes-example-deployment 

This prints information about each of the three Pods in the Deployment. The output shows that each Pod has a container, test-container, with the /cache mount:

Mounts: /cache from cache-volume (rw) 

The output also shows that each Pod contains a Volume named cache-volume:

Volumes: cache-volume: Type: EmptyDir (a temporary directory that shares a pod's lifetime) 

For more information about creating Deployments, refer to Creating a Deployment.

What's next