PV is an object representing storage. It is independent of any single pod and doesn’t belong to any namespace (alike node).
PVC results in a mapping of a PV to a pod (within a namespace). The request PV will be bind-mounted to the container itself
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: thisclaim spec: accessModes: - ReadWriteOnce (1) resources: requests: storage: 8Gi
|1||“ReadWriteOnce” tells Kubernetes that this storage can only be mounted by a single container host in read-write mode In contrast “ReadWriteMany” tells Kubernetes that the storage can be mounted from multiple containers on different hosts.|
With static provisioning, PVs are created beforehand by an administrator and expected to match a future claim.
Provider -StorageClass- knows how to provision storage on-the fly when a request comes in.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: fast provisioner: kubernetes.io/glusterfs parameters: resturl: "http://127.0.0.1:8081" restauthenabled: "true" restuser: "admin" secretNamespace: "default" secretName: "heketi-secret"
PVCs referring to that particular storage class will get their PV objects created on-demand in a completely transparent fashion.