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. Defina réplicas como 0 para implementações de apigee-controller-manager no espaço de nomes 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. Elimine o STS sem eliminação em cascata:
    1. kubectl -n apigee delete sts --cascade=false apigee-cassandra
    2. kubectl get sts -n apigee
      No resources found in apigee namespace.
  5. Atualize o ficheiro de substituições com o novo tamanho do volume que especificou quando editou o pvc:
    cassandra:
      storage:
        capacity: 100Gi
  6. 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
  7. Atualize as réplicas de implementação do controlador para o estado anterior (`1`):
    kubectl edit deployments -n apigee-system apigee-controller-manager
  8. 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
  9. 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