Platform Storage¶
StorageClasses, Volume Expand, IOPS und Backup vs. CSI-Snapshots. Komponenten: SDP Storage.
StorageClasses (Katalog)¶
Welche Klassen in einem konkreten Cluster sichtbar sind, hängt vom Betriebsmodell und den installierten CSI-Blöcken ab. Typische Namen:
| StorageClass (Beispiel) | Backend | Access Mode | Typische Nutzung |
|---|---|---|---|
hcloud-volumes | Hetzner Cloud CSI | RWO | ayedo Cloud / Hetzner-VMs — Volume pro Node-Attachment |
longhorn / Varianten | Longhorn CSI | RWO (RWX je nach Config) | Hyperconverged Block, Snapshots/Backups im Longhorn-Stack |
ceph-rbd / Ceph-RBD | Rook/Ceph | RWO | Verteiltes Block-Storage |
cephfs / CephFS | Rook/Ceph | RWX | Shared File für mehrere Pods |
Default StorageClass
Pro Cluster gibt es höchstens eine Default-Klasse (storageclass.kubernetes.io/is-default-class: "true"). Ohne explizites storageClassName landet die PVC dort.
Dynamic Provisioning¶
- PVC mit gewünschter Größe und StorageClass anlegen
- CSI provisioniert das Volume beim ersten bindenden Pod (oder sofort, je nach Binding-Mode)
- Pod mountet das Volume; Resize und Lifecycle laufen über die PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: app-data
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: hcloud-volumes # oder longhorn / ceph-rbd
resources:
requests:
storage: 20Gi
Volume Expand¶
- Die meisten SDP-StorageClasses erlauben nur Vergrößern (
allowVolumeExpansion: true), kein Shrink. - Ablauf: PVC
.spec.resources.requests.storageerhöhen → Controller/CSI expandiert → Dateisystem wächst nach (bei manchen Treibern erst nach Pod-Restart oder File-System-Resize im Node).
Downtime-Erwartung:
| Backend | Typische Auswirkung beim Expand |
|---|---|
Hetzner CSI (hcloud-volumes) | oft kurzzeitig I/O-Pause oder Pod-Restart nötig, bis das FS die neue Größe sieht |
| Longhorn | Expand online möglich; kurze I/O-Delle möglich |
| Ceph RBD | Expand meist online; Abhängigkeit von FS-Typ im Pod |
Plane kritische Expands außerhalb der Produktivspitze und prüfe danach kubectl get pvc sowie die App-seitige freie Kapazität.
IOPS und Performance¶
- Bei Cloud-Volumes (z. B. Hetzner) skaliert die IOPS-/Durchsatzklasse oft mit der Volume-Größe und dem Produkt-SKU — nicht mit der Pod-CPU allein.
- Bei Longhorn/Ceph bestimmen Replica-Anzahl, Disk-Typ der Nodes und Netz die Latenz; „mehr GiB“ allein garantiert keine höheren IOPS.
- Für Lasttests: Messwerte im Cluster (z. B. Grafana/VictoriaMetrics) statt Annahmen aus anderen Clouds übernehmen.
Snapshots vs. Backup¶
| Mechanismus | Verfügbar? | Empfehlung |
|---|---|---|
Kubernetes VolumeSnapshot (CSI) | Hetzner CSI: in der Regel nicht für plattformweite Snapshot-CRDs vorgesehen | Nicht als Backup-SoT erwarten |
| Longhorn Snapshots / Recurring Jobs | ja (Longhorn-eigen) | ergänzend, nicht Ersatz für Cluster-Backup |
| Velero + PVC/Volume-Backup | ja (SDP-Standard) | empfohlen für app-/clusterweite Sicherung |
Managed-Backup-Defaults (Frequenz, Retention): Leistungsanhang zu den AGB. Velero/Restore: Disaster Recovery · Compliance: Backup & BCDR (Portal).
Quotas und Limits¶
Cluster- und Namespace-Grenzen steuern, wie viel Storage Tenants anfordern dürfen:
ResourceQuota/LimitRangeauf Namespace-Ebene- Node- und Backend-Kapazität (siehe Kapazitätsplanung)
Bei „Pending“-PVCs zuerst StorageClass, Quota und freie Backend-Kapazität prüfen — nicht nur die PVC-YAML.
Shared Responsibility (kurz)¶
| ayedo | Kunde |
|---|---|
| CSI-/Storage-Stack betreiben, Default-Klassen bereitstellen | passende StorageClass und Größe wählen |
| Managed Backups im vereinbarten Scope (Velero/DB) | Expand planen, App-seitige FS-Checks |
| eigene Snapshot-/App-Backup-Logik, wenn Partial Restore nötig |