Este proceso te permite expandir los volúmenes persistentes que usa la base de datos híbrida de Cassandra de Apigee a fin de satisfacer necesidades de almacenamiento mayores sin necesidad de crear nodos nuevos solo para proporcionar más almacenamiento.
Descripción general
El componente cassandra
de Apigee Hybrid usa volúmenes persistentes
para almacenar datos. El tamaño del volumen persistente se define durante la instalación y la configuración inicial. Este tamaño de almacenamiento inicial es un valor inmutable y no se puede cambiar. Por lo tanto, cualquier nodo nuevo que se agregue al clúster utilizará el mismo tamaño de volumen persistente.
Es posible aumentar el tamaño del volumen persistente existente si se realizan los cambios directamente en la reclamación de volumen persistente. Los nodos nuevos seguirán usando el tamaño de volumen persistente inicial más pequeño.
Si tu base de datos híbrida de Cassandra está cerca de su capacidad de almacenamiento, puedes usar este procedimiento para expandir los volúmenes persistentes existentes y permitir que los nodos nuevos también expandan sus volúmenes persistentes.
Expande volúmenes persistentes de Cassandra
- Actualiza el tamaño de volumen al tamaño deseado:
kubectl -n apigee edit pvc
- Verifica la capacidad de volumen actualizada:
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
- Crea copias de seguridad, borra y vuelve a crear el StatefulSet con el nuevo tamaño de almacenamiento. Con los siguientes comandos,
se crea un archivo de configuración
apigee-cassandra-default.yaml
que puedes usar para capturar la configuración actual de Cassandra. A continuación, modifica y aplica esta configuración:kubectl -n apigee get sts apigee-cassandra-default -o yaml > apigee-cassandra-default.yaml
kubectl -n apigee delete sts --cascade=orphan apigee-cassandra-default
- Comprueba que la operación
delete
esté completa:kubectl get sts -n apigee
Deberías obtener un resultado similar al siguiente:
No resources found in apigee namespace.
- Actualiza el tamaño de almacenamiento en el archivo
apigee-cassandra-default.yaml
con el tamaño de almacenamiento nuevo. Este debe coincidir con el tamaño que pretendes aplicar en tuoverrides.yaml
. Por ejemplo:resources: requests: storage: 100Gi
- Vuelve a aplicar la configuración de StatefulSet con el tamaño de almacenamiento actualizado:
kubectl apply -f apigee-cassandra-default.yaml
- Verifica que el estado con estado se haya creado correctamente:
kubectl get sts -n apigee
Deberías obtener un resultado similar al siguiente:
NAME READY AGE apigee-cassandra-default 3/3 6m56s
- Actualice el archivo de anulación con el tamaño de volumen nuevo que especificó cuando editó el archivo pvc:
cassandra: storage: capacity: 100Gi
- Aplica la configuración actualizada al clúster:
Helm
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply datastore -f OVERRIDES_FILE.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
- Comprueba si los sts recién creados tienen el tamaño de almacenamiento actualizado:
kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage
storage: 100Gi
-
Verifica si el volumen de datos de los pods de C* se actualizó al tamaño nuevo:
kubectl exec -n apigee -it apigee-cassandra-default-0 -- df -h|grep "/opt/apigee/data"
/dev/sdb 99G 69M 99G 1% /opt/apigee/data