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 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
Faça backup, exclua e recrie o statefulset com o novo tamanho de armazenamento. Os comandos 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
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 no overrides.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:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-28 UTC."],[[["\u003cp\u003eApigee hybrid Cassandra's persistent volume size is initially immutable, but existing volumes can be expanded without creating new nodes.\u003c/p\u003e\n"],["\u003cp\u003eExpanding persistent volumes is done by editing the Persistent Volume Claim (PVC) directly and updating storage size in your overrides file.\u003c/p\u003e\n"],["\u003cp\u003eTo apply the storage increase, you must backup, delete, and then recreate the Cassandra statefulset with the new size specified.\u003c/p\u003e\n"],["\u003cp\u003eYou need to update your overrides file after expanding the volumes to allow new nodes to expand their persistent volumes as well, and then reapply the updated configuration using either Helm or apigeectl.\u003c/p\u003e\n"],["\u003cp\u003eVolume expansion is only possible with storage classes that support it, and the Kubernetes documentation provides a list of those classes.\u003c/p\u003e\n"]]],[],null,["# Expand Cassandra persistent volumes\n\n| You are currently viewing version 1.11 of the Apigee hybrid documentation. **This version is end of life.** You should upgrade to a newer version. For more information, see [Supported versions](/apigee/docs/hybrid/supported-platforms#supported-versions).\n\nThis process allows you to expand the persistent volumes used by the Apigee hybrid Cassandra\ndatabase to accommodate greater storage needs without needing to create new nodes just to provide\nmore storage.\n\nOverview\n--------\n\nThe Apigee hybrid `cassandra` component uses persistent volumes\nto store data. Persistent volume size is defined during installation and initial configuration. This initial\nstorage size is an immutable value and cannot be changed. Therefore, any new node added to the cluster\nwill use the same persistent volume size.\n\nIt is possible to increase the size of the existing persistent volume by making the changes directly on\nthe Persistent volume Claim. New nodes will still use the smaller initial persistent volume size.\n\nIf your hybrid Cassandra database is nearing its storage capacity, you can use this procedure\nto expand the existing persistent volumes and allow new nodes to expand their persistent volumes as\nwell.\n| **Note:** This process only applies to Kubernetes storage classes that support PersistentVolume expansion. See the **[Allow\n| Volume Expansion list](https://kubernetes.io/docs/concepts/storage/storage-classes/#allow-volume-expansion)** in the Kubernetes documentation.\n|\n|\n| If you do not know what storage class your hybrid installation uses, you can check with\n| the following command. \n|\n| ```\n| kubectl -n apigee get sc standard -o json | grep 'provisioner'\n| ```\n|\n|\n| The output will look something like: \n|\n| ```text\n| \"provisioner\": \"kubernetes.io/gce-pd\",\n| ```\n|\n|\n| Where `gce-pd` is an abbreviation for the *gcePersistentDisk* storage class.\n| You can find a list of storage class abbreviations in the **[Parameters\n| list](https://kubernetes.io/docs/concepts/storage/storage-classes/#parameters)** in the Kubernetes documentation.\n\nExpand Cassandra persistent volumes\n-----------------------------------\n\n1. Update the volume size to the desired size: \n\n ```\n kubectl -n apigee edit pvc\n ```\n2. Check the updated volume capacity: \n\n ```\n kubectl get pvc -n apigee\n ``` \n\n ```\n kubectl get pvc -n apigee\n ``` \n\n ```\n NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE\n cassandra-data-apigee-cassandra-default-0 Bound pvc-92234ba7-941b-4dab-82c6-8a5288a2c8d4 500Gi RWO standard 21m\n cassandra-data-apigee-cassandra-default-1 Bound pvc-6be911fc-91f7-465d-a02e-933428ee10b2 500Gi RWO standard 20m\n cassandra-data-apigee-cassandra-default-2 Bound pvc-14ba34e4-fd5c-4d59-8413-a331dcad3404 500Gi RWO standard 19m\n ```\n3. Backup, delete and recreate the statefulset with the new storage size. The following commands creates a configuration file `apigee-cassandra-default.yaml` you can use to capture the current Cassandra configuration. You then modify and apply this configuration:\n 1.\n\n ```\n kubectl -n apigee get sts apigee-cassandra-default -o yaml \u003e apigee-cassandra-default.yaml\n ```\n 2.\n\n ```\n kubectl -n apigee delete sts --cascade=orphan apigee-cassandra-default\n ```\n 3. Check that the `delete` operation is complete: \n\n ```\n kubectl get sts -n apigee\n ```\n\n\n Your output should look like: \n\n ```text\n No resources found in apigee namespace.\n ```\n 4. Update the storage size in the `apigee-cassandra-default.yaml` file with the new storage size. This must match the size you intend to apply in your `overrides.yaml`. For example: \n\n ```text\n resources:\n requests:\n storage: 500Gi\n ```\n 5. Re-apply the statefulset configuration with the updated storage size: \n\n ```\n kubectl apply -f apigee-cassandra-default.yaml\n ```\n 6. Verify that statefulset was re-created correctly: \n\n ```\n kubectl get sts -n apigee\n ```\n\n\n Your output should look something like: \n\n ```text\n NAME READY AGE\n apigee-cassandra-default 3/3 6m56s\n ```\n4. Update the your overrides file with new volume size that you specified when you edited the pvc:\n\n ### Helm\n\n ```actionscript-3\n cassandra:\n storage:\n storageSize: 500Gi\n \n ```\n\n See [`cassandra.storage.storageSize`](/apigee/docs/hybrid/v1.11/config-prop-ref#cassandra-storage-storagesize) for more details.\n\n ### `apigeectl`\n\n ```actionscript-3\n cassandra:\n storage:\n capacity: 500Gi\n \n ```\n\n See [`cassandra.storage.capacity`](/apigee/docs/hybrid/v1.11/config-prop-ref#cassandra-storage-capacity) for more details.\n5. Apply the updated configuration to the cluster:\n\n ### Helm\n\n ```\n helm upgrade datastore apigee-datastore/ \\\n --namespace apigee \\\n --atomic \\\n -f OVERRIDES_FILE.yaml\n ```\n | **Note:** If you see an error saying `Error: UPGRADE FAILED: \"datastore\" has no deployed releases`, replace `upgrade` with `install` and try the command again.\n\n ### `apigeectl`\n\n ```\n $APIGEECTL_HOME/apigeectl apply datastore -f OVERRIDES_FILE.yaml\n ``` \n\n ```\n Parsing file: config/values.yaml\n Parsing file: overrides/overrides.yaml\n cleansing older AD's (v1alpha1) istio resources...\n\n Invoking \"kubectl apply\" with YAML config...\n\n apigeedatastore.apigee.cloud.google.com/apigee-cassandra unchanged\n ```\n6. Check if the newly created sts has the updated storage size: \n\n ```\n kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage\n ``` \n\n ```\n storage: 500Gi\n ```\n7.\n Check if C\\* pods data volume got updated with new size:\n\n ```\n kubectl exec -n apigee -it apigee-cassandra-default-0 -- df -h|grep \"/opt/apigee/data\"\n ``` \n\n ```text\n /dev/sdb 99G 69M 99G 1% /opt/apigee/data\n ```"]]