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.

Hinweis: Sie können nur persistente Block-Volumes erweitern. Derzeit unterstützt vSphere IaaS control plane keine Volume-Erweiterung für ReadWriteMany-Volumes.
Beachten Sie beim Erweitern eines persistenten Block-Volumes Folgendes:
  • 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.

  1. 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
  2. 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
  3. 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
  4. 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.

  1. 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 
  2. 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"}}}}'
  3. 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
  4. 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 die FilesystemResizePending-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
  5. Erstellen Sie einen Pod zur Verwendung des PVC.

    Wenn das PVC vom Pod verwendet wird, wird das Dateisystem erweitert.

  6. 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 Bedingung FilesystemResizePending wurde aus dem PVC entfernt. Volume-Erweiterung ist abgeschlossen.
  7. 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.