Back to Glossary
Storage

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: 100Gi

Cost & 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.

KorPro— Kubernetes Cost Optimization

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 Free

Stop 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.