Nichtflüchtige Cassandra-Volumes erweitern

Mit diesem Prozess können Sie die nichtflüchtigen Volumes, die von der Apigee Hybrid Cassandra-Datenbank verwendet werden, erweitern, um größere Speicheranforderungen zu erfüllen, ohne neue Knoten erstellen zu müssen, um mehr Speicher bereitzustellen.

Übersicht

Die Apigee Hybrid cassandra-Komponente verwendet nichtflüchtige Volumes zum Speichern von Daten. Die Größe des nichtflüchtigen Volumes wird während Installation und Erstkonfiguration definiert. Diese anfängliche Speichergröße ist ein unveränderlicher Wert. Er kann nicht geändert werden. Daher verwendet jeder dem Cluster neu hinzugefügte Knoten den gleichen nichtflüchtigen Speicherumfang.

Es ist möglich, die Größe des vorhandenen nichtflüchtigen Volumes zu erhöhen. Dazu wenden Sie die Änderungen direkt auf die Nichtflüchtige Volume-Anforderung an. Für neue Knoten wird jedoch weiterhin die kleinere anfängliche Größe des nichtflüchtigen Volumes verwendet.

Wenn Ihre Hybrid-Cassandra-Datenbank die Speicherkapazität nähert, können Sie dieses Verfahren verwenden, um die vorhandenen nichtflüchtigen Volumes zu erweitern und auch neue Knoten erweitern zu können.

Nichtflüchtige Cassandra-Volumes erweitern

  1. Aktualisieren Sie die Volume-Größe auf die gewünschte Größe:
    kubectl -n apigee edit pvc
  2. Prüfen Sie die aktualisierte Volume-Kapazität:
     kubectl get pvc -n apigee
    NAME                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    cassandra-data-apigee-cassandra-default-0   Bound    pvc-92234ba7-941b-4dab-82c6-8a5288a2c8d4   100Gi      RWO            standard       21m
    cassandra-data-apigee-cassandra-default-1   Bound    pvc-6be911fc-91f7-465d-a02e-933428ee10b2   100Gi      RWO            standard       20m
    cassandra-data-apigee-cassandra-default-2   Bound    pvc-14ba34e4-fd5c-4d59-8413-a331dcad3404   100Gi      RWO            standard       19m
  3. Sichern Sie die zustandsorientierte Konfiguration, löschen Sie sie und erstellen Sie sie mit der neuen Speichergröße neu. Die folgenden Befehle erstellen die Konfigurationsdatei apigee-cassandra-default.yaml, mit der Sie die aktuelle Cassandra-Konfiguration erfassen können. Anschließend ändern Sie die Konfiguration und wenden sie an:
    1. kubectl -n apigee get sts apigee-cassandra-default -o yaml > apigee-cassandra-default.yaml
    2. kubectl -n apigee delete sts --cascade=orphan apigee-cassandra-default
    3. Prüfen Sie, ob der Vorgang delete abgeschlossen ist:
      kubectl get sts -n apigee

      Die Ausgabe sollte so aussehen:

      No resources found in apigee namespace.
    4. Aktualisieren Sie die Speichergröße in der Datei apigee-cassandra-default.yaml durch die neue Speichergröße. Sie muss der Größe entsprechen, die Sie in Ihren overrides.yaml anwenden möchten. Beispiel:
           resources:
              requests:
                storage: 100Gi
    5. Wenden Sie die zustandsorientierte Konfiguration noch einmal mit der aktualisierten Speichergröße an:
      kubectl apply -f apigee-cassandra-default.yaml
    6. Prüfen Sie, ob das StatefulSet korrekt neu erstellt wurde:
      kubectl get sts -n apigee

      Die Ausgabe sollte in etwa so aussehen:

      NAME                       READY   AGE
      apigee-cassandra-default   3/3     6m56s
  4. Aktualisieren Sie die Überschreibungsdatei mit der neuen Volume-Größe, die Sie beim Bearbeiten des PVC angegeben haben:
    cassandra:
      storage:
        capacity: 100Gi
  5. Aktualisierte Konfiguration auf den Cluster anwenden:
    ../apigeectl apply --datastore -f overrides/overrides.yaml
    Parsing file: config/values.yaml
    Parsing file: overrides/overrides.yaml
    cleansing older AD's (v1alpha1) istio resources...
    
    Invoking "kubectl apply" with YAML config...
    
    apigeedatastore.apigee.cloud.google.com/apigee-cassandra unchanged
  6. Prüfen Sie, ob die neu erstellten Dateien die aktualisierte Speichergröße haben:
    kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage
    storage: 100Gi
  7. Prüfen Sie, ob das C*-Pods-Datenvolumen mit der neuen Größe aktualisiert wurde:

    kubectl exec -n apigee -it apigee-cassandra-default-0 -- df -h|grep "/opt/apigee/data"
    /dev/sdb         99G   69M   99G   1% /opt/apigee/data