It is a resource of the cluster that can be created via assignment by an administrator or that can be dynamically provisioned using Storages Classes
StorageClass provides a way for a description of different ‘classes’ of storage assigned by an administrator
This allows for the fields provisioner, parameters, and reclaimPolicy to be dynamically provisioned which a PersistentVolume of the specific class needs to be provisioned.
PVs like Volumes are a volume plugin class however they are able to persist in their lifecycle independent of any individual pods that make use of that PV.
pods which consume cpu and memory resources from a node claims consume storage from a Persistent Volume and have specific access schemes such as read/write, read only, etc
Persistent Volume Claims (PVC):
It can be likely to the relationship between pods and nodes. Where pods consume resources from a node, Persistent Volume Claims consume resources from a PersistentVolume for requests made by a specific user.
In essence when requested by a user Persistent Volume Claims are bound to Persistent Volumes and can be thought of more simply as PVs being resources on the cluster while PVCs are requests for those resources
A simplified lifecycle entails provisioning, binding, use including in use protection, and reclamation.
This allows for the scheduler to consider all of the scheduling constraints when choosing an appropriate PersistentVolume for a PersistentVolumeClaim by having the StorageClass delay the binding during the matching process
when you delete the pod and when you delete the persistent volume claim it's going to delete the persistent volume and the associated data as well.
PersistentVolume (PV) :
Persistent Volume Claims (PVC):