Ce processus vous permet de développer les volumes persistants utilisés par la base de données Apigee hybrid Cassandra pour répondre aux besoins de stockage plus importants sans avoir à créer de nœuds supplémentaires pour fournir davantage d'espace de stockage.
Aperçu
Le composant Apigee hybride cassandra
utilise des volumes persistants pour stocker des données. La taille du volume persistant est définie lors de l'installation et de la configuration initiale. Cette taille de stockage initiale est une valeur immuable et ne peut pas être modifiée. Par conséquent, tout nouveau nœud ajouté au cluster utilisera la même taille de volume persistant.
Il est possible d'augmenter la taille du volume persistant existant en apportant les modifications directement dans la revendication de volume persistant. Toutefois, les nouveaux nœuds continueront d'utiliser la taille de volume persistant initiale plus petite.
Si votre base de données hybride Cassandra approche de sa limite de stockage, vous pouvez utiliser cette procédure pour développer les volumes persistants existants et autoriser les nouveaux nœuds à développer également leurs volumes persistants.
Développer des volumes persistants Cassandra
- Modifiez la taille du volume pour obtenir la taille souhaitée :
kubectl -n apigee edit pvc
- Vérifiez la capacité du volume mis à jour :
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
- Définissez des instances dupliquées sur
0
pour les déploiementsapigee-controller-manager
dans l'espace de nomsapigee-system
: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
- Sauvegardez, supprimez et recréez l'ensemble avec état avec la nouvelle taille de stockage. Les commandes suivantes créent un fichier de configuration
apigee-cassandra-default.yaml
que vous pouvez utiliser pour capturer la configuration Cassandra actuelle. Vous modifiez et appliquez ensuite cette configuration :kubectl -n apigee get sts apigee-cassandra-default -o yaml > apigee-cassandra-default.yaml
kubectl -n apigee delete sts --cascade=false apigee-cassandra-default
- Vérifiez que l'opération
delete
est terminée :kubectl get sts -n apigee
Vous devriez obtenir le résultat suivant :
No resources found in apigee namespace.
- Mettez à jour le fichier
apigee-cassandra-default.yaml
avec la nouvelle taille de l'espace de stockage. Celle-ci doit correspondre à la taille que vous souhaitez appliquer dans votreoverrides.yaml
. Exemple :resources: requests: storage: 100Gi
- Appliquez à nouveau la configuration avec état avec la taille de stockage mise à jour :
kubectl apply -f apigee-cassandra-default.yaml
- Vérifiez que le statefulset a été recréé correctement :
kubectl get sts -n apigee
Le résultat doit se présenter sous la forme suivante :
NAME READY AGE apigee-cassandra-default 3/3 6m56s
- Mettez à jour le fichier de remplacement avec la nouvelle taille de volume spécifiée lors de la modification du pvc :
cassandra: storage: capacity: 100Gi
- Appliquez la configuration mise à jour au cluster :
../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
- Mettez à jour les instances dupliquées de déploiement du contrôleur pour revenir à leur état antérieur (
`1`
) :kubectl edit deployments -n apigee-system apigee-controller-manager
- Vérifiez si la sts nouvellement créée dispose de la taille de stockage mise à jour :
kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage
storage: 100Gi
-
Vérifiez si le volume de données des pods C* a été mis à jour avec une nouvelle taille :
kubectl exec -n apigee -it apigee-cassandra-default-0 -- df -h|grep "/opt/apigee/data"
/dev/sdb 99G 69M 99G 1% /opt/apigee/data