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.