Symptom
Die Installation von Apigee Hybrid schlägt fehl, weil nicht genügend Speicherplatz für die Cassandra-Datenbank vorhanden ist. Die Installation schlägt mit der folgenden Fehlermeldung fehl:
Error: UPGRADE FAILED: cannot patch "default" with kind ApigeeDatastore: Internal error occurred
Außerdem enthält das Cassandra-Log eine Warnung ähnlich der folgenden:
WARN [main] 2024-06-18 12:34:55,583 DatabaseDescriptor.java:579 - Only 62.440GiB free across all data volumes. Consider adding more capacity to your cluster or removing obsolete snapshots
Allgemeine Diagnoseschritte
Verwenden Sie das Apigee Hybrid Must-Gather-Skript, um die Logs aus den Cassandra-Pods zur Überprüfung zu erfassen.
Mögliche Ursache
Ursache | Beschreibung |
---|---|
Kein Speicherplatz mehr verfügbar | Der verfügbare Speicherplatz für Cassandra beträgt weniger als 50%. |
Ursache 1: Kein Speicherplatz mehr verfügbar
Achten Sie beim Upgrade von Apigee Hybrid darauf, dass für alle Cassandra-Pods mehr als 50% Speicherplatz verfügbar sind.
Diagnose
-
Sehen Sie sich im Apigee Hybrid Must-Gather-Script die Ausgabe des folgenden Befehls an, um die Gesamtgröße des mit Cassandra verknüpften Volumes zu prüfen:
kubectl get pv -n APIGEE_NAMESPACE
Beispielausgabe
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE pvc-0b6b2daa-d512-4780-9021-fc97293a8154 10Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-default-1 standard-rwo <unset> - 20d pvc-2263fc7c-e057-406a-ad60-38573733c92d 10Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-default-2 standard-rwo <unset> - 20d pvc-8c854fe9-adaa-440f-90d9-d15497e7f530 10Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-default-0 standard-rwo <unset> - 20d
-
Prüfen Sie die
nodetool
-Statusausgabe, um die von jedem Cassandra-Pod verwendete Festplatte zu sehen. Die Speicherplatznutzung für nichtflüchtige Volume-Anforderungen (Persistent Volume Claims, PVCs), die Cassandra-Pods zugewiesen sind, sollte 50% der verfügbaren Speicherkapazität nicht überschreiten. Verwenden Sie den folgenden Befehl:kubectl -n APIGEE_NAMESPACE -c apigee-cassandra exec apigee-cassandra-default-1 -- bash -c 'nodetool -u cassandra -pw $CASS_PASSWORD status'
Dabei ist CASS_PASSWORD das
cassandra.auth.default.password
, das in der Referenz zu Konfigurationsattributen erwähnt wird.Beispielausgabe
Datacenter: us-west3 ======================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.10.10.1 6.69 GiB 256 100.0% 2a184030-444-4155-8375-156e87539711 a UN 10.10.10.2 7.42 GiB 256 53.1% f22b66c7-4444-4000-b9c0-5a71ee6315a8 c UJ 10.10.10.3 7.39 GiB 256 ? 78fb2737-4444-4468-a786-e473ead115b5 b UN 10.10.10.4 7.81 GiB 256 47.0% 779fcdf1-4444-4186-bcbb-2844e59629c2 b UN 10.10.10.5 6.91 GiB 256 53.0% 55ca07b2-4444-4967-b321-6477d50f9846 b UN 10.10.10.6 7.41 GiB 256 46.9% 0cf33585-444-46ce-811f-9c6376ed58ac c
Optional: Verwenden Sie
kubectl
, um einen Befehl im Cassandra-Container auszuführen und den Prozentsatz der Festplattennutzung zu prüfen.kubectl exec -it apigee-cassandra-default-0 -n apigee – df -h /opt/apigee/data
kubectl exec -it apigee-cassandra-default-1 -n apigee – df -h /opt/apigee/data
kubectl exec -it apigee-cassandra-default-2 -n apigee – df -h /opt/apigee/data
Beispiel
Im folgenden Beispiel ist die Festplattenspeicherauslastung über 50%. Dies würde Probleme bei Apigee Hybrid-Upgrades verursachen.
kubectl exec -it apigee-cassandra-default-0 -n apigee -- df -h /opt/apigee/data
Defaulted container "apigee-cassandra" out of: apigee-cassandra, apigee-cassandra-ulimit-init (init) Filesystem Size Used Avail Use% Mounted on /dev/sdb 10G 6G 4G 60% /opt/apigee/data
kubectl exec -it apigee-cassandra-default-1 -n apigee -- df -h /opt/apigee/data
Defaulted container "apigee-cassandra" out of: apigee-cassandra, apigee-cassandra-ulimit-init (init) Filesystem Size Used Avail Use% Mounted on /dev/sdb 10G 5.9G 4.1G 59% /opt/apigee/data
kubectl exec -it apigee-cassandra-default-2 -n apigee -- df -h /opt/apigee/data
Defaulted container "apigee-cassandra" out of: apigee-cassandra, apigee-cassandra-ulimit-init (init) Filesystem Size Used Avail Use% Mounted on /dev/sdb 10G 5.6G 4.4G 56% /opt/apigee/data
Lösung
Wenn die Laufwerksauslastung über 50 % liegt, skalieren Sie die Cassandra-Laufwerkskapazität, damit sie unter 50% liegt, bevor Sie ein Apigee Hybrid-Upgrade durchführen.
Informationen zum Erweitern der Festplattenkapazität finden Sie unter Größe des nichtflüchtigen Cassandra-Speichers verwalten.
Erfassen von Diagnoseinformationen erforderlich
Wenn das Problem auch nach Befolgen der obigen Anweisungen weiterhin besteht, sammeln Sie die folgenden Diagnoseinformationen und wenden Sie sich dann an den Google Cloud Customer Care:- Ihre Google Cloud-Projekt-ID.
- Ihre Apigee Hybrid-Organisation.
- Die
overrides.yaml
-Dateien aus den Quellregionen und den neuen Regionen (vertrauliche Informationen müssen maskiert werden). - Die Ausgaben der Befehle in Apigee Hybrid Must-Gather.