Welcome to the Linux Foundation Forum!

Lesson 8. Theoretical Doubt: Relation between PV and PVC

Hello everyone.
How are you all doing?

I am doing the labs for lesson 8: VOLUMES AND DATA and I have a question. I don't understand how the persistentVolumes are related to the PersistentVolumeClaim.
I mean, if I create a PV:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pvvol-1
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /opt/sfw
    server: k8scp
    readOnly: false

I can see that it is not claimed by anyone.

~$ kubectl get pv
NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
pvvol-1   1Gi        RWX            Delete           Available                                   87s

Now if I create a PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-one
spec:
  accessModes:
  - ReadWriteMany
  resources:
     requests:
       storage: 200Mi

Now I can see that the PV is claimed by the PVC pvc-one.

~$ kubectl get pv
NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM           STORAGECLASS   REASON   AGE
pvvol-1   1Gi        RWX            Delete           Bound    small/pvc-one                           2m47s

But I have not specified that the PV pvvol-1 is claimed by pvc-one. So how are they related?

Thank you very much and best regards.

Comments

  • oleksazhel
    oleksazhel Posts: 57

    @dgsison A control loop in the master watches for new PVCs, finds a matching PV (if possible). In our case it checks only size to be matched. You also can use key volumeName key in your PVC manifest to assign it explicitly. For example:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-one
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 2000Mi
      volumeName: pvvol-1
    

    You can find more here: https://kubernetes.io/docs/concepts/storage/persistent-volumes/

Categories

Upcoming Training