Kann die Größe eines persistenten Volumes angepasst werden?

8

Ich führe eine MySQL-Implementierung auf Kubernetes aus, aber es scheint, als wäre mein zugewiesener Speicherplatz nicht ausreichend. Anfangs habe ich ein persistentes Volumen von 50GB hinzugefügt und jetzt möchte ich das auf 100GB erweitern.

Ich habe bereits gesehen, dass ein persistenter Volumenanspruch nach der Erstellung unveränderlich ist, aber kann ich irgendwie einfach das persistente Volumen skalieren und dann meinen Anspruch neu erstellen?

    
perrohunter 31.10.2016, 00:40
quelle

4 Antworten

9

Nein, Kubernetes unterstützt die automatische Volume-Größenänderung noch nicht.

Die Größenänderung von Datenträgern ist im Moment ein vollständig manueller Prozess.

Wenn Sie davon ausgehen, dass Sie ein Kubernetes-PV-Objekt mit einer bestimmten Kapazität erstellt haben und die PV an einen PVC gebunden ist, und dann an einen Knoten angehängt / gemountet wurde, um von einem Pod verwendet zu werden. Wenn Sie die Volume-Größe erhöhen, können Pods weiterhin die Festplatte ohne Probleme verwenden, haben jedoch keinen Zugriff auf den zusätzlichen Speicherplatz.

Um den zusätzlichen Speicherplatz auf dem Volume zu aktivieren, müssen Sie die Größe der Partitionen manuell ändern. Sie können dies tun, indem Sie die Anweisungen hier befolgen. Sie müssten die Pods, die auf das Volume verweisen, zuerst löschen und darauf warten, dass es sich löst. Dann müssen Sie das Volume manuell an eine VM-Instanz anhängen und bereitstellen und die erforderlichen Schritte zur Größenänderung ausführen.

Geöffnetes Problem # 35941 , um die Feature-Anfrage zu verfolgen.

    
Saad Ali 01.11.2016 01:09
quelle
8

Es ist in Kubernetes 1.9 (Alpha in 1.8) für einige Volumetypen möglich: gcePersistentDisk, awsElasticBlockStore, Cinder, glusterfs, rbd

Dazu müssen die Plug-in- und Speicherklassen PersistentVolumeClaimResize admission aktiviert werden, deren Feld allowVolumeExpansion auf true gesetzt ist.

Siehe offizielle Dokumente unter Ссылка

    
csanchez 11.01.2018 13:57
quelle
2

Was die Größenanpassung von PVC / PV betrifft, wird das in k8s immer noch nicht unterstützt, obwohl ich glaube, dass es möglicherweise in 1.9 kommen könnte.

Es ist möglich, das gleiche Endergebnis durch den Umgang mit PVC / PV und (z.B.) GCE PD zu erreichen.

Zum Beispiel hatte ich eine gitlab-Bereitstellung mit einem PVC und einer dynamisch bereitgestellten PV über eine StorageClass-Ressource. Hier sind die Schritte, die ich durchlaufen habe:

  1. Machen Sie einen Schnappschuss des PD (sofern Sie sich um die Daten kümmern)
  2. Stellen Sie sicher, dass die ReclaimPolicy der PV "Retain" ist, und korrigieren Sie sie gegebenenfalls wie hier beschrieben: Ссылка
  3. kubectl describe pv <name-of-pv> (nützlich, wenn das PV Manifest später erstellt wird)
  4. Löschen Sie die Bereitstellung / Pod (wahrscheinlich nicht wichtig, aber sauberer scheint)
  5. Löschen Sie PVC und PV
  6. Stellen Sie sicher, dass PD von nichts erkannt wird (z. B. google console, compute / disks-Seite)
  7. Resize PD mit dem Cloud-Provider (mit GCE zum Beispiel kann dies tatsächlich zu einem früheren Zeitpunkt getan werden, selbst wenn der Datenträger verwendet wird)
  8. Erstellen Sie das k8s PersistentVolume-Manifest (dies wurde zuvor dynamisch über die StorageClass-Ressource durchgeführt). In der Yaml-Spezifikation "PersistentVolume" hatte ich "gcePersistentDisk: pdName: <name-of-pd>" definiert, zusammen mit anderen Details, die ich in Schritt 3 erfasst habe. Stelle sicher, dass du spec.capacity.storage auf die neue Kapazität aktualisierst, die der PV haben soll (obwohl dies nicht wichtig ist und hier keine Auswirkungen hat, möchten Sie möglicherweise die Speicherkapazität / den Wert in Ihrem PVC-Manifest für die Nachwelt aktualisieren)
  9. kubectl apply (oder gleichwertig), um Ihre Bereitstellung / Pod, PVC und PV
  10. neu zu erstellen

Hinweis: Einige Schritte sind möglicherweise nicht unbedingt erforderlich, wie z. B. das Löschen einiger vorhandener Ressourcen für die Bereitstellung / Bereitstellung, obwohl ich sie am liebsten selbst entferne, da ich weiß, dass die ReclaimPolicy beibehalten wird und ich einen Snapshot habe.

    
eversMcc 28.11.2017 09:21
quelle
0

Ja, kann es sein, nach Version 1.8

    
Ravindranath Akila 10.01.2018 07:49
quelle