Sie können die Kubernetes-Volume-Erweiterungsfunktion verwenden, um ein persistentes Block-Volume nach dessen Erstellung zu erweitern. TKG-Dienst-Cluster unterstützen die Erweiterung von Offline- und Online-Volumes.
Info zur Erweiterung persistenter Volumes
Standardmäßig ist allowVolumeExpansion
bei Speicherklassen, die in der TKG-Clusterumgebung angezeigt werden, auf true
festgelegt. Dieser Parameter ermöglicht die Konfiguration der Größe eines Online- oder Offline-Volumes.
Ein Volume gilt als offline, wenn es nicht mit einem Knoten oder Pod verbunden ist. Ein Online-Volume ist ein Volume, das auf einem Knoten oder Pod verfügbar ist.
Der Grad der Unterstützung der Volume-Erweiterungsfunktion ist abhängig von der vSphere-Version. Sie können Volumes, die in früheren Versionen von vSphere erstellt wurden, erweitern, wenn Sie ein Upgrade Ihrer vSphere-Umgebung auf entsprechende Versionen durchführen, die Erweiterungen unterstützen.
- Sie können die Volumes bis zu den durch Speicherkontingente festgelegten Grenzwerten erweitern. vSphere IaaS control plane unterstützt aufeinanderfolgende Skalierungsanforderungen für ein Beanspruchungsobjekt eines persistenten Volumes.
- Alle Arten von Datenspeichern, einschließlich VMFS, vSAN, vSAN Direct, vVols und NFS, unterstützen die Volumeerweiterung.
- Sie können Volumeerweiterungen für Bereitstellungen oder eigenständige Pods durchführen.
- Sie können die Größe von statisch bereitgestellten Volumes in einem Tanzu Kubernetes Grid-Cluster ändern, wenn den Volumes Speicherklassen zugewiesen sind.
- Volumes, die als Teil eines StatefulSet erstellt wurden, können nicht erweitert werden.
- Wenn eine virtuelle Festplatte, die ein Volume-Backing erstellt, über Snapshots verfügt, kann deren Größe nicht geändert werden.
- vSphere IaaS control plane unterstützt keine Volumeerweiterung für strukturbasierte oder migrierte Volumes.
Erweitern eines persistenten Volumes im Online-Modus
Ein Online-Volume ist ein Volume, das auf einem Knoten oder Pod verfügbar ist. Als DevOps Engineer können Sie ein persistentes Onlineblock-Volume erweitern. Tanzu Kubernetes Grid-Cluster unterstützen die Erweiterung von Online-Volumes.
- Suchen Sie mit dem folgenden Befehl nach der Beanspruchung eines persistenten Volumes, um die Größe zu ändern.
Beachten Sie, dass die Speichergröße, die das Volume in diesem Beispiel verwendet, 1 Gi beträgt.
$ kubectl get pv,pvc,pod NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE persistentvolume/pvc-5cd51b05-245a-4610-8af4-f07e77fdc984 1Gi RWO Delete Bound default/block-pvc block-sc 4m56s NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/block-pvc Bound pvc-5cd51b05-245a-4610-8af4-f07e77fdc984 1Gi RWO block-sc 5m3s NAME READY STATUS RESTARTS AGE pod/block-pod 1/1 Running 0 26s
- Patchen Sie das PVC, um es zu vergrößern. Erhöhen Sie den Wert für die Größe beispielsweise auf 2 Gi.
Diese Aktion löst eine Erweiterung in dem Volume aus, das mit dem PVC verknüpft ist.
$ kubectl patch pvc block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}' persistentvolumeclaim/block-pvc edited
- Stellen Sie sicher, dass sowohl die PVC- als auch die PV-Größe erhöht wurde.
$ kubectl get pvc,pv,pod NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/block-pvc Bound pvc-5cd51b05-245a-4610-8af4-f07e77fdc984 2Gi RWO block-sc 6m18s NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE persistentvolume/pvc-5cd51b05-245a-4610-8af4-f07e77fdc984 2Gi RWO Delete Bound default/block-pvc block-sc 6m11s NAME READY STATUS RESTARTS AGE pod/block-pod 1/1 Running 0 101s
- Verwenden Sie die vSphere Client, um die Größe des neuen persistenten Volumes zu überprüfen.
Weitere Informationen finden Sie unter Überwachen der Volume-Integrität in einem Tanzu Kubernetes Grid-Cluster.
Erweitern eines persistenten Volumes im Offline-Modus
Ein Volume gilt als offline, wenn es nicht mit einem Knoten oder Pod verbunden ist. Tanzu Kubernetes Grid-Cluster unterstützen die Erweiterung von Offline-Volumes.
- Erstellen Sie eine Beanspruchung eines persistenten Volumes (Persistent Volume Claim, PVC) mit einer bestehenden Speicherklasse.
Im Beispiel beträgt die Größe des angeforderten Speichers 1 Gi.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: example-block-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: example-block-sc
kubectl apply -f example-block-pvc.yaml
- Patchen Sie das PVC, um es zu vergrößern.
Wenn das MATERIAL nicht an einen Knoten angehängt ist oder von einem Pod verwendet wird, verwenden Sie den folgenden Befehl zum Patchen von PVC. In diesem Beispiel beträgt die angeforderte Speichererhöhung 2 Gi.
Diese Aktion löst eine Erweiterung in dem Volume aus, das mit dem PVC verknüpft ist.kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
- Vergewissern Sie sich, dass das Volume größer geworden ist.
kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-9e9a325d-ee1c-11e9-a223-005056ad1fc1 2Gi RWO Delete Bound default/example-block-pvc example-block-sc 6m44s
- Stellen Sie sicher, dass die Größenänderung des PVC aussteht.
Hinweis: Die Größe des PVC bleibt unverändert, bis das PVC von einem Pod verwendet wird.Das folgende Beispiel zeigt, dass sich die PVC-Größe nicht geändert hat, da sie nicht von einem Pod verwendet wurde. Wenn Sie
kubectl describe pvc
ausführen, wird dieFilesystemResizePending
-Bedingung auf das PVC angewendet. Sobald sie von einem Pod verwendet wird, ändert sich die Größe.kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE example-block-pvc Bound pvc-9e9a325d-ee1c-11e9-a223-005056ad1fc1 1Gi RWO example-block-sc 6m57s
- Erstellen Sie einen Pod zur Verwendung des PVC.
Wenn das PVC vom Pod verwendet wird, wird das Dateisystem erweitert.
- Vergewissern Sie sich, dass die PVC-Größe geändert wurde.
kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE example-block-pvc Bound pvc-24114458-9753-428e-9c90-9f568cb25788 2Gi RWO example-block-sc 2m12s
Die BedingungFilesystemResizePending
wurde aus dem PVC entfernt. Volume-Erweiterung ist abgeschlossen. - Verwenden Sie die vSphere Client, um die Größe des neuen persistenten Volumes zu überprüfen.
Weitere Informationen finden Sie unter Überwachen der Volume-Integrität in einem Tanzu Kubernetes Grid-Cluster.