noi-techpark / infrastructure-v2

Open Data Hub Infrastructure v2 Repository
1 stars 0 forks source link

Create a dedicated EBS CSI storage class #53

Open christian-roggia opened 10 months ago

christian-roggia commented 10 months ago

A new storage class is required in the cluster with provisioner: ebs.csi.aws.com in order to take advantage of the EBS CSI driver. See this documentation link for more information.

We should also consider migrating the default storage class to the EBS CSI with gp3 volume type. We should also verify how to migrate existing volumes to the new storage class and driver.

This is what we currently have online in the cluster (currently in use by all persistent volumes in the cluster):

➜  ~ kubectl get storageclasses.storage.k8s.io
NAME            PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
gp2 (default)   kubernetes.io/aws-ebs   Delete          WaitForFirstConsumer   true                   202d
# kubectl get storageclasses.storage.k8s.io gp2 -o yaml
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  name: gp2
parameters:
  fsType: ext4
  type: gp2
provisioner: kubernetes.io/aws-ebs
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
clezag commented 10 months ago

@christian-roggia regarding gp2/gp3 we're still in the process of deciding whether we will go with Consip or not.

Consip sadly only has gp2 volumes available, so I would hold work on this until we know for sure.

christian-roggia commented 10 months ago

I think we still need to switch to the EBS CSI provisioner even if the volume type is downgraded to gp2.

clezag commented 10 months ago

Is this for the cross-AZ stuff? Anyway, my comment was solely about the gp2/gp3 issue, if you think we have to switch and it's doable with gp2 volumes, go ahead.

christian-roggia commented 10 months ago

EBS CSI is the way forward for persistent volume management, Kubernetes will be removing the vendor-specific implementation (currently used by the default storage class) from its codebase in future releases.