What is the difference between persistent volume (PV) and persistent volume claim (PVC) in simple terms?
What is the difference between persistent volume (PV) and persistent volume claim (PVC) in Kubernetes/ Openshift by referring to documentation?
What is the difference between both in simple terms?
PVC is a declaration of need for storage that can at some point become available / satisfied - as in bound to some actual PV.
It is a bit like the asynchronous programming concept of a promise. PVC promises that it will at some point "translate" into storage volume that your application will be able to use, and one of defined characteristics like class, size, and access mode (ROX, RWO, and RWX).
This is a way to abstract thinking about a particular storage implementation away from your pods/deployments. Your application in most cases does not need to declare "give me NFS storage from server X of size Y"; it is more like "I need persistent storage of default class and size Y".
With this, deployments on different clusters can choose to differently satisfy that need. One can link an EBS device, another can provision a GlusterFS, and your core manifests are still the same in both cases.
Furthermore, you can have Volume Claim Templates defined in your deployment, so that each pod gets a reflecting PVC created automatically (i.e., supporting infrastructure-agnostic storage definition for a group of scalable pods where each needs its own dedicated storage).
Persistent Volumes, Watch this video to learn the difference between a Persistent Volume (PV) and a Persistent Volume Claim (PVC). Previous activity: Introduction to� Persistent Volumes and Persistent Volume Claims Watch this video to learn the difference between a Persistent Volume (PV) and a Persistent Volume Claim (PVC). Previous activity:
From the docs
PVs are resources in the cluster. PVCs are requests for those resources and also act as claim checks to the resource.
So a persistent volume (PV) is the "physical" volume on the host machine that stores your persistent data. A persistent volume claim (PVC) is a request for the platform to create a PV for you, and you attach PVs to your pods via a PVC.
Something akin to
Pod -> PVC -> PV -> Host machine
Short: - Here you have the storage! PersistenVolume (PV) - You get the storage if you really need it! PersistentVolumeClaim (PVC)
Persistent Volumes and Persistent Volume Claims, Persistent Volume Claim Object Definition with volumeName A long-term solution for limiting who can claim a a different PVC from binding to the specified PV before yours does. PVs are volume plugins like Volumes but have a lifecycle independent of any individual pod that uses the PV. A PersistentVolumeClaim (PVC) is a request for storage by a user. It is just like a Pod, pods requests for resources like CPU and memory, while PVC requests for specific size of PV and access modes.
A Persistent Volume Claim is telling you what options you have access to in a particular cluster and they got this circular at this store called Smart Tech with some ads about your configuration options, those ads are the Persistent Volume Claim.
Inside your config file you write out the different Persistent Volume Claims that you are going to have inside your cluster, kind of like your wish list to Santa, but of course you are going to go take that to the sales guy at Smart Tech when you are done.
So you write a config file that says there should a 600gb hard drive option available to all your clusters and a 1TB hard drive option as well.
When you choose one of these options of the Persistent Volume Claim you go and request that Kubernetes (the sales guy) goes and gets that option for you, the option you have chosen, Kubernetes has to look through these instances of storage options in the stock room that are readily available. These instances of hard drives can be used right away and they are considered statically provisioned because they are created ahead of time.
On the other hand, there is dynamically provisioned options that were created on the fly, when you asked Kubernetes the sales guy, so kind of like just-in-time production, it got created when you immediately asked for it.
So the Persistent Volume Claim is the stores advertisement of options and whichever one you choose Kubernetes will go get it, either one in storage or create one on the fly.
The Persistent Volume is the actual product or options that you get back from Kubernetes that you asked for. If Kubernetes does not have what you asked for it will try to create it on the fly for you.
So the PVC is what Smart Tech is advertising they have to offer to your cluster which Kubernetes the sales guy will get for you and the PV is the actual finished product delivered to you.
Understanding persistent storage | Storage, Persistent Volume Claims. A PersistentVolumeClaim (PVC) is how you reserve a PV to mount it later as a volume in containers within a pod. Let’s digest what I just said slowly. When you create a PV, you define specific properties like capacity or access mode. Those properties are important because when you create a PVC, you set the properties
PersistentVolume(PV) and PersistentVolumeClaim(PVC) are the resources APIs provided by the Kubernetes. PV is a piece of storage which supposed to preallocated by an admin. And PVC is a request for a piece of storage by a user.
Using Persistent Volumes | Developer Guide, Persistent Volume and Persistent Volume Claim. Persistent Volume (PV) − It’s a piece of network storage that has been provisioned by the administrator. It’s a resource in the cluster which is independent of any individual pod that uses the PV. Persistent Volume Claim (PVC) − The storage requested by Kubernetes for its pods is known as
In fact, neither works like the volume in Docker. In addition to PV and PVC, there is also a Volume concept in Kubernetes, but it’s not like the one in Docker. We will talk about it later. After you read a bit more about PV and PVC, you would likely realize that PV is the allocated storage and PVC is the request to use that storage.
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE monitoring-volume 50Gi RWO Retain Available 16m I had expected the PersistentVolume to be Bound but it isn't. When I use a ´PersistentVolumeClaim´ with the same name as this, a new PersistentVolumeClaim is created that is written in /tmp and therefore not very
Mounting this volume using a PVC (Persistent Volume Claim) backed by a PV (Persistent Volume) configured against a NFS share. Can I confirm that the above would actually be possible? I.e. two different pods connected to the same volume with the same PVC. So they both are reading from the same volume.
- Anyone, looking for a clear difference/clarification between PV,PVC, Storage class can refer:- portworx.com/basic-guide-kubernetes-storage
- A quote from the linked article: "Persistent Volume Claims represent the exclusive usage of a Persistent Volume by a particular Pod"
- Host machine could be any kind of Storage = [ NFS | cloud storage | storage providers | ... ]
- @will Gordon Request you to let me know, Where does storage class come into the picture in your answer.
- @SuhasChikkanna, StorageClasses (kubernetes.io/docs/concepts/storage/storage-classes) simply define the type of PVCs that a user can request.
- @WillGordon Yes, I now kind of see your picture as this, Please correct me if I am wrong :- Pod -> PVC -> PV -> (Storage Class, If applicable) -> Host machine. And also, for anyone else, this is good guide out there to know the difference between PV, PVC, Storage Class(portworx.com/basic-guide-kubernetes-storage).
- @SuhasChikkanna That seems about right, although I think the StorageClass would go between
PVbecause it defines classes of
PVs available to generate via
- Hi and welcome to Stack Overflow. Can you provide a more detailed explanation? It's fine to summarize your solution but please, try to be descriptive if you can :)