Data Storage

Description of the different Storage Classes.

In order to persistently store data in Kubernetes, a pod needs to be granted access to persistent storage. Kubernetes offers the ability to create such storage easily through PersistentVolumeClaims (PVCs). For a conceptual understanding, I would recommend referring to the documentation.

In short, you can create a PVC manually:

- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: example namespace: example spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi storageClassName: manilabronze

Or even better as an Volume Claim Template directly in a StatefulSet:

apiVersion: apps/v1 kind: StatefulSet metadata: name: example namespace: example spec: --- volumeClaimTemplates: - metadata: name: storage spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi storageClassName: cindergold

In our clusters, various predefined StorageClasses are included, corresponding to different types of storage.

Quotas for those StorageClasses must be requested in the project application form.

At the moment there are the following StorageClasses (they are also described in the project application form):

  • cinderbronze

    • HDD block storage with five-fold replication.
    • Can only be mounted by one pod at a time.
  • cindergold

    • SSD block storage with five-fold replication.
    • Can only be mounted by one pod at a time.
  • manilabronze

    • HDD file system storage with 8+3 ErasureCoding.
    • Can be mounted by multiple pods at once.