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.

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 sich der Grenze ihrer Speicherkapazität nähert, können Sie dieses Verfahren verwenden, um die vorhandenen nichtflüchtigen Volumes zu erweitern und es auch neuen Knoten zu erlauben, sich zu erweitern.

Prozess

  1. Bevor Sie mit der Erweiterung des nichtflüchtigen Volumes fortfahren, prüfen Sie, ob allowVolumeExpansion: true beim Erstellen der StorageClass festgelegt wurde:
    kubectl get sc standard -o json | jq .allowVolumeExpansion true
  2. Aktualisieren Sie die Volume-Größe für die vorhandene Konfiguration des nichtflüchtigen Volumes (PVC, Persistent Volume Configuration):
    kubectl -n apigee edit pvc 
  3. Löschen Sie das StatefulSet, ohne das kaskadierende Löschen zu verwenden:
    kubectl -n apigee delete sts --cascade=false apigee-cassandra
  4. Aktualisieren Sie die Datei „overrides.yaml“ und wenden Sie die Änderungen an:
    cassandra:
      storage:
        capacity: 20Gi
    ./apigeectl apply -c cassandra -f overrides.yaml
  5. Bei einem rollierenden Neustart der Cassandra-Pods wird die neue Größe berücksichtigt. Löschen Sie die Cassandra-Pods einzeln. Prüfen Sie, ob das StatefulSet fehlerfrei ist, bevor Sie mit den nächsten Knoten fortfahren:
    kubectl -n apigee delete pod apigee-cassandra-2
    kubectl -n apigee get sts
      NAME               READY   AGE
      apigee-cassandra   3/3     64s
  6. Prüfen Sie, ob die Cassandra-Pods die neue Volume-Größe haben:
    kubectl -n apigee get pvc