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
- Aktualisieren Sie die Volume-Größe auf die gewünschte Größe:
kubectl -n apigee edit pvc
- 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
- Legen Sie Replikate zu
0
fürapigee-controller-manager
-Bereitstellungen imapigee-system
-Namespace fest:kubectl get deployments -n apigee-system
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 28m
kubectl edit deployments -n apigee-system apigee-controller-manager
kubectl get deployments -n apigee-system
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 0/0 0 0 30m
- 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:kubectl -n apigee get sts apigee-cassandra-default -o yaml > apigee-cassandra-default.yaml
kubectl -n apigee delete sts --cascade=false apigee-cassandra-default
- 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.
- 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 Ihrenoverrides.yaml
anwenden möchten. Beispiel:resources: requests: storage: 100Gi
- Wenden Sie die zustandsorientierte Konfiguration noch einmal mit der aktualisierten Speichergröße an:
kubectl apply -f apigee-cassandra-default.yaml
- 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
- Aktualisieren Sie die Überschreibungsdatei mit der neuen Volume-Größe, die Sie beim Bearbeiten des PVC angegeben haben:
cassandra: storage: capacity: 100Gi
- 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
- Aktualisieren Sie die Controller-Bereitstellungsreplikate auf ihren vorherigen Zustand (
`1`
):kubectl edit deployments -n apigee-system apigee-controller-manager
- 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
-
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