Espandi volumi permanenti Cassandra

Questo processo consente di espandere i volumi permanenti utilizzati dalla piattaforma Apigee ibrida Cassandra per soddisfare esigenze di archiviazione più elevate senza dover creare nuovi nodi solo per più spazio di archiviazione.

Panoramica

Il componente Apigee ibrido cassandra, che utilizza volumi permanenti per archiviare i dati. Le dimensioni del volume permanente viene definito durante l'installazione e la configurazione iniziale. Questa iniziale la dimensione dello spazio di archiviazione è un valore immutabile e non può essere modificata. Di conseguenza, ogni nuovo nodo aggiunto al cluster utilizzerà le stesse dimensioni di volume permanente.

È possibile aumentare la dimensione del volume permanente esistente apportando le modifiche direttamente sul la richiesta di volume permanente, ma i nuovi nodi continueranno a utilizzare la dimensione del volume permanente iniziale più piccola.

Se il database Cassandra ibrido sta per raggiungere la capacità di archiviazione, puoi utilizzare questa procedura di espandere i volumi permanenti esistenti e consentire ai nuovi nodi di espandere i propri volumi permanenti beh.

Espandi volumi permanenti Cassandra

  1. Aggiorna le dimensioni del volume con le dimensioni desiderate:
    kubectl -n apigee edit pvc
  2. Controlla la capacità del volume aggiornata:
     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. Imposta le repliche su 0 per apigee-controller-manager deployment in lo spazio dei nomi 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. Esegui il backup, elimina e ricrea lo StatefulSet con le nuove dimensioni dello spazio di archiviazione. I seguenti comandi crea un file di configurazione apigee-cassandra-default.yaml che puoi utilizzare per acquisire configurazione attuale di Cassandra. Quindi, modifica e applica questa configurazione:
    1. kubectl -n apigee get sts apigee-cassandra-default -o yaml > apigee-cassandra-default.yaml
    2. kubectl -n apigee delete sts --cascade=false apigee-cassandra-default
    3. Verifica che l'operazione delete sia completata:
      kubectl get sts -n apigee

      L'output dovrebbe essere simile al seguente:

      No resources found in apigee namespace.
    4. Aggiorna le dimensioni dello spazio di archiviazione nel file apigee-cassandra-default.yaml con il nuovo dimensioni dello spazio di archiviazione. Deve corrispondere alle dimensioni che intendi applicare in overrides.yaml. Ad esempio:
           resources:
              requests:
                storage: 100Gi
    5. Applica di nuovo la configurazione StatefulSet con le dimensioni di archiviazione aggiornate:
      kubectl apply -f apigee-cassandra-default.yaml
    6. Verifica che l'oggetto StatefulSet sia stato creato di nuovo correttamente:
      kubectl get sts -n apigee

      L'output dovrebbe essere simile al seguente:

      NAME                       READY   AGE
      apigee-cassandra-default   3/3     6m56s
  5. Aggiorna il file degli override con la nuova dimensione del volume che hai specificato quando hai modificato il file pvc:
    cassandra:
      storage:
        capacity: 100Gi
  6. Applica la configurazione aggiornata al 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
  7. Aggiorna le repliche di deployment del controller al loro stato precedente (`1`):
    kubectl edit deployments -n apigee-system apigee-controller-manager
  8. Verifica che le dimensioni dello spazio di archiviazione appena create siano aggiornate:
    kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage
    storage: 100Gi
  9. Controlla se il volume di dati dei pod C* è stato aggiornato con la nuova dimensione:

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