Persistente Volumes in Kubernetes vergrößern

von | Jul 14, 2022

Du willst ein PersistentVolume (PV) in Kubernetes vergrößern? In diesem Blogeintrag erfährst du wie das funktioniert. Was PVs sind und wie man diese anlegt wird im Tutorial Persistente Volumes in Kubernetes erstellen erklärt, auf welchem das vorliegende Tutorial aufbaut.

 

PV in K8s vergrößern: Los Geht’s

Das Vergrößern eines PVs in Kubernetes ist keine schwere Übung. Zu beachten gilt es, dass das PersistentVolumeClaim und nicht das PersistentVolume-Objekt editiert werden muss. Das PVC-Objekt kann z.B. mit dem Befehl kubectl edit angepasst werden. Falls du das oben angesprochene Tutorial absolviert hast, sollte in deinem Cluster ein PVC-Objekt mit dem Namen nginx-documentroot existieren. Dieses wollen wir von 1 GiB auf 5 GiB vergrößern.

$ kubectl edit pvc nginx-documentroot

Im nun geöffneten Editor kann man das Yaml-Manifest des PVC-Objekts bearbeiten. Zum Vergrößern passt man den Wert unter .spec.resources.requests.storage an.

Nach dem Speichern und Schließen des Editors erfolgt die Vergrößerung des Volumes. Die standardmäßig in NWS Managed Kubernetes Clustern verwendete Cinder-StorageClass unterstützt Online Expansion, d.h. das Filesystem auf dem Volume wird auch bei laufendem Pod vergrößert und der zusätzliche Speicherplatz ist direkt im Container verfügbar. Es ist also kein Neustart des Pods notwendig. Eine Verkleinerung eines PVs ist nicht möglich. Die Kubernetes-API lässt dies gar nicht erst zu.

Um zu überprüfen, ob der Resize erfolgreich vollzogen wurde, kannst du dir zum Schluss noch das zum PVC gehörige PV anzeigen lassen:

Das PV-Objekt wurde aktualisiert und spiegelt die neue Größe von 5 GiB des zugrundeliegenden Volumes wider. Um sich vollends davon zu überzeugen, dass der zusätzliche Speicherplatz zur Verwendung im Container bereitsteht, öffnet man eine Shell auf dem Container mit kubectl exec:

 

Weitere Hilfreiche Informationen

Du hast nun gesehen, wie sich ein bestehendes PV vergrößern lässt. Damit du den Füllstand der Volumes in deinem Cluster immer im Blick hast, lohnt es sich zum Zweck des Monitorings den Kube Prometheus Stack einzusetzen. Wenn du benachrichtigt werden willst, wenn ein Volume eine kritische Speicherbelegung erreicht, könnte das Tutorial Kubernetes Alerting mit Prometheus Alertmanager interessant für dich sein.

Mehr überKubernetes
ReadWriteMany (RWX) mit dem NFS Ganesha Provisioner

ReadWriteMany (RWX) mit dem NFS Ganesha Provisioner

Einführung Du hast die Anforderung, dass Deine Anwendung für eine Lastverteilung über mehrere Nodes skalieren muss, aber Zugriff auf ein gemeines PVC benötigt? Zu diesem Zweck benötigst Du ein PVC welches RWX-fähig ist. Im Rahmen unserer Managed Kubernetes Cluster ist...

Benutzerdefiniertes Verbindungslimit für Load Balancer

Benutzerdefiniertes Verbindungslimit für Load Balancer

Du würdest gerne ein eigenes Limit für eingehende Verbindungen an deinem Load Balancer festlegen? In diesem Tutorial lernst du wie das geht. Über das Verbindungslimit Das Verbindungslimit (engl. "connection limit") beschreibt die maximal zugelassene Anzahl an...

Automatische Fedora CoreOS Updates für Dein Kubernetes

Automatische Fedora CoreOS Updates für Dein Kubernetes

Du willst automatische Fedora CoresOS Updates für Dein Kubernetes? Und was haben Zincati und libostree damit zu tun? Hier bekommst Du schnell einen Überblick! Als Betriebssystem vieler Kubernetes Cluster kommt Fedora CoreOS zum Einsatz. Dieses auf Container...