Ampliar volúmenes persistentes de Cassandra

Este proceso le permite ampliar los volúmenes persistentes que usa la base de datos de Cassandra de Apigee hybrid para satisfacer mayores necesidades de almacenamiento sin tener que crear nodos nuevos solo para proporcionar más almacenamiento.

Informació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 añada al clúster usará el mismo tamaño de volumen persistente.

Es posible aumentar el tamaño del volumen persistente haciendo los cambios directamente en la reclamación de volumen persistente, pero los nodos nuevos seguirán usando el tamaño inicial más pequeño del volumen persistente.

Si tu base de datos híbrida de Cassandra se acerca a su capacidad de almacenamiento, puedes usar este procedimiento para ampliar los volúmenes persistentes y permitir que los nuevos nodos también amplíen sus volúmenes persistentes.

Ampliar volúmenes persistentes de Cassandra

  1. Actualiza el tamaño del volumen al tamaño que quieras:
    kubectl -n apigee edit pvc
  2. Comprueba 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
  3. Define las réplicas en 0 para las implementaciones de apigee-controller-manager en el espacio de nombres apigee-system:
    1. kubectl get deployments -n apigee-system
      NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
      apigee-controller-manager   1/1     1            1           28m
    2. kubectl edit deployments -n apigee-system apigee-controller-manager
    3. kubectl get deployments -n apigee-system
      NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
      apigee-controller-manager   0/0     0            0           30m
  4. Eliminar STS sin eliminación en cascada:
    1. kubectl -n apigee delete sts --cascade=false apigee-cassandra
    2. kubectl get sts -n apigee
      No resources found in apigee namespace.
  5. Actualiza el archivo de anulaciones con el nuevo tamaño de volumen que especificaste al editar el pvc:
    cassandra:
      storage:
        capacity: 100Gi
  6. Aplica la configuración actualizada 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
  7. Actualiza las réplicas de la implementación del controlador a su estado anterior (`1`):
    kubectl edit deployments -n apigee-system apigee-controller-manager
  8. Comprueba si el STS recién creado tiene el tamaño de almacenamiento actualizado:
    kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage
    storage: 100Gi
  9. Comprueba si el volumen de datos de los pods de C* se ha actualizado con el nuevo tamaño:

    kubectl exec -n apigee -it apigee-cassandra-default-0 -- df -h|grep "/opt/apigee/data"
    /dev/sdb         99G   69M   99G   1% /opt/apigee/data