PersistentVolumeClaim(PVC)
A namespaced request for persistent storage that binds to a PersistentVolume and mounts it into a Pod.
Also known as: PVC
What is PersistentVolumeClaim?
A PersistentVolumeClaim (PVC) is a namespaced request by a user or workload for a specific amount of persistent storage with particular access characteristics. When a PVC is created, Kubernetes binds it to a suitable available PersistentVolume (matching capacity, accessModes, and storageClassName), or triggers dynamic provisioning via a StorageClass if no pre-existing PV matches. Once bound, the PVC can be referenced in a Pod spec's volumes section, mounting the underlying storage into the container.
PVCs are namespace-scoped, meaning different namespaces can have PVCs with the same name but pointing to different PVs. StatefulSets use volumeClaimTemplates to automatically create one PVC per Pod replica, with names like data-postgres-0, data-postgres-1. These per-Pod PVCs are not deleted when the StatefulSet is scaled down or deleted — they must be manually removed.
The VolumeExpansion feature (supported by most cloud StorageClasses) allows a PVC to be expanded by editing its storage request — no downtime required for most block storage types. PVC storage can only be increased, never decreased, through this mechanism. Shrinking storage requires data migration to a new PVC.
Example
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-data
namespace: databases
spec:
accessModes:
- ReadWriteOnce
storageClassName: ssd
resources:
requests:
storage: 100GiCost & Waste Implications
Orphaned PVCs are one of the most expensive Kubernetes resource types to leave uncleaned. A single forgotten 1TB SSD PVC on GKE costs ~$170/month. Enterprises running 50+ clusters commonly accumulate hundreds of orphaned PVCs — from deleted StatefulSets, decommissioned dev environments, and failed CI jobs — worth thousands of dollars per month in silent storage spend.
How KorPro Helps
KorPro identifies PVCs with no bound Pods and no recent access activity, estimates their monthly cloud cost by size and StorageClass, and surfaces them for audit-first cleanup with zero-risk review before any deletion.
Scan Your Cluster FreeRelated Terms
PersistentVolume(PV)
StorageA cluster-scoped storage resource provisioned by an administrator or dynamically by a StorageClass, independent of any Pod lifecycle.
Read definitionStorageClass
StorageA cluster resource that defines a storage provisioner and parameters, enabling dynamic PV provisioning on demand.
Read definitionStatefulSet
WorkloadsA controller for stateful applications that provides stable Pod identities, ordered deployment, and per-Pod PersistentVolumeClaims.
Read definitionOrphaned Resource
FinOpsA Kubernetes resource that is no longer referenced by any active workload but continues to exist in the cluster, often incurring cost.
Read definitionStop Wasting Money on Orphaned Kubernetes Resources
KorPro connects to your clusters across GCP, AWS, and Azure — no agents, no installation — and surfaces every orphaned resource with its monthly cost estimate.