Als DevOps Engineer können Sie die Kubernetes-Volume-Erweiterungsfunktion verwenden, um ein persistentes Block-Volume nach dessen Erstellung zu erweitern. Die Erweiterung von Offline- und Online-Volumes wird von beiden Clustertypen, Tanzu Kubernetes Grid und Supervisoren, unterstützt.

Standardmäßig ist allowVolumeExpansion bei Speicherklassen, die in der vSphere with Tanzu-Umgebung 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.

Beachten Sie beim Erweitern der Volumes Folgendes:
  • Sie können die Volumes bis zu den durch Speicherkontingente festgelegten Grenzwerten erweitern. vSphere with Tanzu 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 Supervisor und 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 with Tanzu unterstützt keine Volumeerweiterung für strukturbasierte oder migrierte Volumes.

Erweitern eines persistenten Volumes im Offline-Modus

Ein Volume gilt als offline, wenn es nicht mit einem Knoten oder Pod verbunden ist. Beide Clustertypen, Cluster Supervisoren und Tanzu Kubernetes Grid, unterstützen Offline-Volume-Erweiterungen.

Voraussetzungen

Aktualisieren Sie Ihre vSphere-Umgebung auf eine geeignete Version, die Erweiterungen von Offline-Volumes unterstützt.

Prozedur

  1. Erstellen Sie eine Beanspruchung eines persistenten Volumes (Persistent Volume Claim, PVC) mit einer Standardspeicherklasse.
    1. Definieren Sie das PVC mithilfe des folgenden YAML-Manifests als Beispiel.
      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
    2. Wenden Sie das PVC auf den Kubernetes-Cluster an.
      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.
    kubectl patch pvc example-block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
    Diese Aktion löst eine Erweiterung in dem Volume aus, das mit dem PVC verknüpft ist.
  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
    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. Wenn Sie das PVC beschreiben, sehen Sie, dass die Bedingung FilesystemResizePending auf das PVC angewendet ist.
    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
  4. Erstellen Sie einen Pod zur Verwendung des PVC.
    Wenn das PVC vom Pod verwendet wird, wird das Dateisystem erweitert.
  5. 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.

Nächste Maßnahme

Ein vSphere-Administrator kann die neue Volume-Größe im vSphere Client sehen. Weitere Informationen hierzu finden Sie unter Überwachen von dauerhaften Volumes im vSphere Client.

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. Die Erweiterung von Online-Volumes wird sowohl von Supervisoren- als auch von Tanzu Kubernetes Grid-Clustern unterstützt.

Voraussetzungen

Aktualisieren Sie Ihre vSphere-Umgebung auf eine geeignete Version, die die Erweiterung von Online-Volumes unterstützt.

Prozedur

  1. Suchen Sie für die Skalierung nach einer Anforderung von persistenten Datenträgern.
    $ 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

    Beachten Sie, dass die Speichergröße, die das Volume verwendet, 1 Gi beträgt.

  2. Patchen Sie das PVC, um es zu vergrößern.
    Erhöhen Sie den Wert für die Größe beispielsweise auf 2 Gi.
    $ kubectl patch pvc block-pvc -p '{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'
    persistentvolumeclaim/block-pvc edited
    Diese Aktion löst eine Erweiterung in dem Volume aus, das mit dem PVC verknüpft ist.
  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

Nächste Maßnahme

Ein vSphere-Administrator kann die neue Volume-Größe im vSphere Client sehen. Weitere Informationen hierzu finden Sie unter Überwachen von dauerhaften Volumes im vSphere Client.