Esse processo permite expandir os volumes permanentes usados pelo banco de dados híbrido do Cassandra da Apigee para acomodar maiores necessidades de armazenamento sem precisar criar novos nós apenas para fornecer mais armazenamento.
Visão geral
O componente cassandra
híbrido da Apigee usa volumes permanentes para armazenar dados. O tamanho do volume permanente é definido durante a instalação e a configuração inicial. Esse tamanho de armazenamento inicial é um valor imutável e não pode ser alterado. Portanto, qualquer novo nó adicionado ao cluster usará o mesmo tamanho de volume permanente.
É possível aumentar o tamanho do volume permanente existente fazendo alterações diretamente na reivindicação de volume permanente, mas novos nós ainda usarão o tamanho de volume permanente inicial menor.
Se seu banco de dados híbrido do Cassandra estiver próximo à capacidade de armazenamento, use este procedimento para expandir os volumes permanentes existentes e permitir que novos nós também expandam os respectivos volumes permanentes.
Expandir volumes permanentes do Cassandra
- Atualize o tamanho do volume para o tamanho desejado:
kubectl -n apigee edit pvc
- 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
- Defina réplicas como
0
para implantaçõesapigee-controller-manager
no namespaceapigee-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
- Faça backup, exclua e recrie o statefulset com o novo tamanho de armazenamento. Os componentes a seguir criam um arquivo de configuração
apigee-cassandra-default.yaml
que pode ser usado para capturar a configuração atual do Cassandra. Em seguida, você modifica e aplica esta configuração:kubectl -n apigee get sts apigee-cassandra-default -o yaml > apigee-cassandra-default.yaml
kubectl -n apigee delete sts --cascade=false apigee-cassandra-default
- Verifique se a operação
delete
foi concluída:kubectl get sts -n apigee
A resposta será parecida com esta:
No resources found in apigee namespace.
- Atualize o tamanho do armazenamento no arquivo
apigee-cassandra-default.yaml
com o novo tamanho de armazenamento. Ele precisa corresponder ao tamanho que você pretende aplicar nooverrides.yaml
. Por exemplo:resources: requests: storage: 100Gi
- Reaplique a configuração com estado ao tamanho de armazenamento atualizado:
kubectl apply -f apigee-cassandra-default.yaml
- Verifique se o statefulset foi recriado corretamente:
kubectl get sts -n apigee
A resposta será semelhante a esta:
NAME READY AGE apigee-cassandra-default 3/3 6m56s
- Atualize o arquivo de substituições com o novo tamanho do volume especificado quando você editou o pvc:
cassandra: storage: capacity: 100Gi
- 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
- Atualize as réplicas de implantação do controlador para o estado anterior (
`1`
):kubectl edit deployments -n apigee-system apigee-controller-manager
- Verifique se as variáveis recém-criadas têm o tamanho do armazenamento atualizado:
kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage
storage: 100Gi
-
Verifique se o volume de dados dos pods 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