Expanda os volumes persistentes do Cassandra

Este processo permite-lhe expandir os volumes persistentes usados pela base de dados Cassandra do Apigee hybrid para satisfazer maiores necessidades de armazenamento sem ter de criar novos nós apenas para fornecer mais armazenamento.

Vista geral

O componente cassandra híbrido do Apigee usa volumes persistentes para armazenar dados. O tamanho do volume persistente é definido durante a instalação e a configuração inicial. Este tamanho de armazenamento inicial é um valor imutável e não pode ser alterado. Por conseguinte, qualquer novo nó adicionado ao cluster usa o mesmo tamanho do volume persistente.

É possível aumentar o tamanho do volume persistente existente fazendo as alterações diretamente na Persistent volume Claim, mas os novos nós continuam a usar o tamanho do volume persistente inicial mais pequeno.

Se a sua base de dados híbrida do Cassandra estiver a aproximar-se da capacidade de armazenamento, pode usar este procedimento para expandir os volumes persistentes existentes e permitir que os novos nós também expandam os respetivos volumes persistentes.

Expanda os volumes persistentes do Cassandra

  1. Atualize o tamanho do volume para o tamanho pretendido:
    kubectl -n apigee edit pvc
  2. Verifique a capacidade de volume atualizada:
     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. Faça uma cópia de segurança, elimine e recrie o conjunto com estado com o novo tamanho de armazenamento. Os seguintes comandos criam um ficheiro de configuração apigee-cassandra-default.yaml que pode usar para capturar a configuração atual do Cassandra. Em seguida, modifique e aplique esta configuração:
    1. kubectl -n apigee get sts apigee-cassandra-default -o yaml > apigee-cassandra-default.yaml
    2. kubectl -n apigee delete sts --cascade=orphan apigee-cassandra-default
    3. Verifique se a operação delete está concluída:
      kubectl get sts -n apigee

      O resultado deve ter o seguinte aspeto:

      No resources found in apigee namespace.
    4. Atualize o tamanho do armazenamento no ficheiro apigee-cassandra-default.yaml com o novo tamanho do armazenamento. Este valor tem de corresponder ao tamanho que pretende aplicar no seu overrides.yaml. Por exemplo:
           resources:
              requests:
                storage: 100Gi
    5. Volte a aplicar a configuração do StatefulSet com o tamanho de armazenamento atualizado:
      kubectl apply -f apigee-cassandra-default.yaml
    6. Verifique se o StatefulSet foi recriado corretamente:
      kubectl get sts -n apigee

      O resultado deve ter um aspeto semelhante ao seguinte:

      NAME                       READY   AGE
      apigee-cassandra-default   3/3     6m56s
  4. Atualize o ficheiro de substituições com o novo tamanho do volume que especificou quando editou o pvc:
    cassandra:
      storage:
        capacity: 100Gi
  5. Aplique a configuração atualizada ao 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
  6. Verifique se o STS recém-criado tem o tamanho de armazenamento atualizado:
    kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage
    storage: 100Gi
  7. Verifique se o volume de dados dos auriculares C* foi atualizado com o novo tamanho:

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