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.
To create a Deployment from this manifest file, run the following command:
kubectlapply-fvolumes-demo.yaml
Verify that your Deployment is running correctly and has the expected Volume
with this command:
kubectldescribepodsvolumes-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)
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[],[],null,["# Creating volumes\n\n[Autopilot](/kubernetes-engine/docs/concepts/autopilot-overview) [Standard](/kubernetes-engine/docs/concepts/choose-cluster-mode)\n\n*** ** * ** ***\n\nThis page explains how to create Volume resources in your cluster. For more\ndetails, see the\n[Kubernetes documentation about Volumes](https://kubernetes.io/docs/concepts/storage/volumes/).\n\nUsing Volumes with Deployments\n------------------------------\n\nYou can [create a Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)\nof Pods where each Pod contains one or more\nVolumes. The following Deployment manifest describes a Deployment of three Pods\nthat each have an [emptyDir Volume](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir).\n\nIn this example:\n\n- The `metadata: name` field specifies a Deployment named `volumes-example-deployment`.\n- The [Pod template](https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/#pod-templates) specification includes a `volumes` field that describes an emptyDir volume named `cache-volume`.\n- The container specification includes a `volumeMounts:` field that specifies that the Volume named `cache-volume` is mounted at the file path `/cache`.\n- The manifest file is named `volumes-demo.yaml`.\n\n apiVersion: apps/v1\n kind: Deployment\n metadata:\n name: volumes-example-deployment\n spec:\n replicas: 3\n selector:\n matchLabels:\n app: demo\n template:\n metadata:\n labels:\n app: demo\n spec:\n containers:\n - name: test-container\n image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0\n volumeMounts:\n - mountPath: /cache\n name: cache-volume\n volumes:\n - name: cache-volume\n emptyDir: {}\n\nTo create a Deployment from this manifest file, run the following command: \n\n kubectl apply -f volumes-demo.yaml\n\nVerify that your Deployment is running correctly and has the expected Volume\nwith this command: \n\n kubectl describe pods volumes-example-deployment\n\nThis prints information about each of the three Pods in the Deployment. The\noutput shows that each Pod has a container, test-container, with the `/cache`\nmount: \n\n Mounts:\n /cache from cache-volume (rw)\n\nThe output also shows that each Pod contains a Volume named `cache-volume`: \n\n Volumes:\n cache-volume:\n Type: EmptyDir (a temporary directory that shares a pod's lifetime)\n\nFor more information about creating Deployments, refer to [Creating a\nDeployment](/kubernetes-engine/docs/how-to/stateless-apps#create).\n\nWhat's next\n-----------\n\n- [Learn about PersistentVolumes, PersistentVolumeClaims, and dynamic storage provisioning](/kubernetes-engine/docs/concepts/persistent-volumes).\n- [Learn about using the Compute Engine persistent disk CSI Driver](/kubernetes-engine/docs/how-to/gce-pd-csi-driver)."]]