Problème constaté
Le processus d'installation d'Apigee hybrid échoue en raison d'un espace disque insuffisant pour la base de données Cassandra. Le processus d'installation échoue avec le message d'erreur suivant :
Error: UPGRADE FAILED: cannot patch "default" with kind ApigeeDatastore: Internal error occurred
De plus, le journal Cassandra contient un avertissement semblable à ce qui suit :
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
Étapes de diagnostic courantes
Utilisez le script Apigee hybrid must-gather pour collecter les journaux des pods Cassandra à examiner.
Cause possible
Cause | Description |
---|---|
Espace disque insuffisant | L'espace disque disponible pour Cassandra est inférieur à 50 %. |
Cause 1 : Espace disque insuffisant
Lorsque vous mettez à niveau Apigee hybrid, assurez-vous que plus de 50 % d'espace disque est disponible pour tous les pods Cassandra.
Diagnostic
-
À partir du script Apigee Hybrid must-gather, examinez le résultat de la commande suivante pour vérifier la taille totale du volume associé à Cassandra :
kubectl get pv -n APIGEE_NAMESPACE
Exemple de résultat
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
-
Vérifiez l'état de
nodetool
pour connaître le disque utilisé par chaque pod Cassandra. L'utilisation de l'espace disque pour les demandes de volume persistant (PVC) attribuées aux pods Cassandra ne doit pas dépasser 50 % de la capacité de stockage disponible. Reportez-vous à la commande suivante :kubectl -n APIGEE_NAMESPACE -c apigee-cassandra exec apigee-cassandra-default-1 -- bash -c 'nodetool -u cassandra -pw $CASS_PASSWORD status'
Où CASS_PASSWORD est le
cassandra.auth.default.password
mentionné dans la documentation de référence sur les propriétés de configuration.Exemple de résultat
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
(Facultatif) Utilisez
kubectl
pour exécuter une commande dans le conteneur Cassandra afin de vérifier le pourcentage d'utilisation du disque.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
Exemple
L'exemple suivant montre une utilisation de l'espace disque supérieure à 50 %. Cela entraînerait des problèmes lors des mises à niveau d'Apigee hybrid.
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
Solution
Si vous constatez que l'utilisation du disque est supérieure à 50 %, augmentez la capacité du disque Cassandra pour qu'elle soit inférieure à 50 % avant d'effectuer une mise à niveau d'Apigee hybrid.
Pour augmenter la capacité du disque, consultez Gérer la taille du stockage persistant Cassandra.
Vous devez collecter des informations de diagnostic
Si le problème persiste, même après avoir suivi les instructions ci-dessus, rassemblez les informations de diagnostic suivantes, puis contactez Google Cloud Customer Care :- L'ID de votre projet Google Cloud.
- Votre organisation Apigee hybrid.
- Les fichiers
overrides.yaml
des régions sources et nouvelles (n'oubliez pas de masquer les informations sensibles). - Les résultats des commandes dans Apigee hybrid must-gather.