Verfügbare StorageClasses
NETWAYS Managed Kubernetes Cluster werden mit mehreren vordefinierten StorageClasses bereitgestellt.
Falls keine davon den Anforderungen entspricht, können eigene StorageClasses erstellt werden.
Weitere Informationen sind in der Cinder-CSI-Driver-Dokumentation zu finden.
Alternativ kann man jederzeit einen unserer MyEngineers® kontaktieren.
~ : kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION
standard (default) cinder.csi.openstack.org Delete Immediate true
general-purpose-1 cinder.csi.openstack.org Delete Immediate true
general-purpose-1-encrypted cinder.csi.openstack.org Delete Immediate true
general-purpose-2 cinder.csi.openstack.org Delete Immediate true
general-purpose-2-encrypted cinder.csi.openstack.org Delete Immediate true
performance-optimized-1 cinder.csi.openstack.org Delete Immediate true
performance-optimized-1-encrypted cinder.csi.openstack.org Delete Immediate true
performance-optimized-2 cinder.csi.openstack.org Delete Immediate true
performance-optimized-2-encrypted cinder.csi.openstack.org Delete Immediate true
standard
standard ist die Default-StorageClass in NETWAYS Managed Kubernetes Clustern.
Es wird ein ext4-formatiertes Volume in OpenStack bereitgestellt, das gelöscht wird, sobald der zugehörige PersistentVolumeClaim (PVC) entfernt wird.
VolumeExpansion wird ebenfalls unterstützt, sodass die Größe eines PVCs nachträglich angepasst werden kann und Kubernetes das Resizing übernimmt.
Das IOPS-Limit beträgt 1000 IOPS, mit einer kurzfristigen Erhöhung auf bis zu 2000 IOPS für 60 Sekunden. Sofern es gewünscht ist, eine andere StorageClass als default zu nutzen, muss die Default-Class Annotation entfernt werden. Gelöscht werden darf die StorageClass jedoch nicht, da sie bei einem Cluster Upgrade ansonsten wieder angelegt werden würde. Änderungen an dieser werden jedoch, anders als bei allen anderen StorageClasses, ignoriert.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
storageclass.kubernetes.io/is-default-class: "true"
name: standard
allowVolumeExpansion: true
parameters:
csi.storage.k8s.io/fstype: ext4
provisioner: cinder.csi.openstack.org
reclaimPolicy: Delete
volumeBindingMode: Immediate
Andere StorageClasses
Die anderen StorageClasses nutzen auch alle das EXT4 Dateisystem. Die Informationen über die IOPS und der Verschlüsselung befinden sich als Annotation auf der jeweiligen StorageClass und können somit direkt aus dem Cluster entnommen werden.
So schaut es im Cluster z.B. aus:
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
kubernetes.io/description: |-
Base IOPS: ~2000 IOPS
Burst IOPS: Up to 4000 IOPS
Burst Duration: 60 seconds
Encrypted: False
name: general-purpose-2
allowVolumeExpansion: true
parameters:
csi.storage.k8s.io/fstype: ext4
type: general-purpose-2
provisioner: cinder.csi.openstack.org
reclaimPolicy: Delete
volumeBindingMode: Immediate
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
kubernetes.io/description: |-
Base IOPS: ~2500 IOPS
Burst IOPS: Up to 5000 IOPS
Burst Duration: 60 seconds
Encrypted: True
name: performance-optimized-1-encrypted
allowVolumeExpansion: true
parameters:
csi.storage.k8s.io/fstype: ext4
type: performance-optimized-1-encrypted
provisioner: cinder.csi.openstack.org
reclaimPolicy: Delete
volumeBindingMode: Immediate
Legacy StorageClasses
Sollten die oben genannten StorageClasses im Cluster nicht vorhanden sein, muss ein Cluster Upgrade ausgeführt werden. Dabei werden die neuen StorageClassen zusätzlich hinzugefügt. Die alten bleiben dabei bestehen.
Unterstützung von ReadWriteMany (RWX)
Derzeit werden keine Volumes mit dem RWX-Zugriffstyp bereitgestellt.
Dieses Feature befindet sich auf unserer Roadmap, jedoch kann derzeit kein genauer Zeitrahmen genannt werden.
Bis dahin kann eine eigene Lösung implementiert werden, beispielsweise auf Basis von NFS oder Rook Ceph. Gerne stehen Dir hierbei unsere MyEngineers® zur Seite.