Skip to main content

Persistent Volume

A persistent volume is durable Kubernetes storage independent of pod lifecycles, claimed by workloads via PVCs so data survives restarts.

A persistent volume (PV) is a Kubernetes resource that represents a piece of durable storage provisioned in the cluster. Its lifecycle is independent of any pod, so data stored on it survives pod restarts, rescheduling, and replacement.

How It Works

Kubernetes separates storage provisioning from storage consumption. A PersistentVolume describes an actual storage resource, such as a cloud disk, NFS share, or network block device. A PersistentVolumeClaim (PVC) is a request for storage by a workload, specifying size and access mode. Kubernetes binds a claim to a suitable volume.

Provisioning can be static, where an administrator creates PVs in advance, or dynamic, where a StorageClass automatically provisions a PV when a claim is made. Access modes (such as ReadWriteOnce or ReadWriteMany) and a reclaim policy (Retain or Delete) govern how the volume is shared and what happens when the claim is released. A pod mounts the claimed volume into its containers as a filesystem path.

Why It Matters

Containers are ephemeral, and their writable layers vanish when they stop. Persistent volumes give stateful applications, databases, queues, and file stores a way to keep data durably while still running on a dynamic platform.

This abstraction lets developers request storage by intent (size and access mode) without knowing the underlying infrastructure, and lets operators choose the backing technology. Persistent volumes are especially central to StatefulSets, which bind stable storage to each pod identity.

Related Terms

A persistent volume is mounted by a pod, is bound through a claim often used by a StatefulSet, and is scoped alongside other resources in a namespace.