About Persistent Volume SupportΒΆ

Persistent Volume Claims (PVCs) are requests for storage resources in your cluster. By default, container images have an ephemeral file system. In order for containers to persist files beyond the lifetime of the container, a Persistent Volume Claim can be created to obtain a persistent volume which the container can mount and read/write files.

Management and customization tasks for Kubernetes PVCs can be accomplished by using StorageClasses set up by two Helm charts; rbd-provisioner and cephfs-provisioner. The rbd-provisioner, and cephfs-provisioner Helm charts are included in the platform-integ-apps system application, which is automatically loaded and applied as part of the StarlingX installation.

PVCs are supported with the following options:

  • with accessMode of ReadWriteOnce backed by Ceph RBD

    • only one container can attach to these PVCs

    • management and customization tasks related to these PVCs are done through the rbd-provisioner Helm chart provided by platform-integ-apps

  • with accessMode of ReadWriteMany backed by CephFS

    • multiple containers can attach to these PVCs

    • management and customization tasks related to these PVCs are done through the cephfs-provisioner Helm chart provided by platform-integ-apps

After platform-integ-apps is applied the following system configurations are created:

  • Ceph Pools

    ~(keystone_admin)]$ ceph osd lspools
    kube-rbd
    kube-cephfs-data
    kube-cephfs-metadata
    
  • CephFS

    ~(keystone_admin)]$ ceph fs ls
    name: kube-cephfs, metadata pool: kube-cephfs-metadata, data pools: [kube-cephfs-data ]
    
  • Kubernetes StorageClasses

    ~(keystone_admin)]$ kubectl get sc
    NAME               PROVISIONER           RECLAIMPOLICY  VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION
    cephfs             cephfs.csi.ceph.com   Delete         Immediate           true
    general (default)  rbd.csi.ceph.com      Delete         Immediate           true