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 híbrido de Apigee cassandra
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, pero 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
- Configura réplicas en
0
para implementacionesapigee-controller-manager
en el espacio de nombresapigee-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
- Crea copias de seguridad, borra y vuelve a crear el StatefulSet con el nuevo tamaño de almacenamiento. Con las siguientes instrucciones, 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=false 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 al clúster:
../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
- Actualiza las réplicas de implementación del controlador a su estado anterior (
`1`
):kubectl edit deployments -n apigee-system apigee-controller-manager
- 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