For the Cassandra database, hybrid runtime uses
dynamically created persistent volumes to store data. To configure
Cassandra properly, you must configure a StorageClass
definition that is backed by a solid-state drive (SSD).
This topic explains how to create a new StorageClass that uses SSD and make it the
default class. When Cassandra starts, it will use this default StorageClass.
Change the default StorageClass
The following steps explain how to create a StorageClass and make it the default class. For more
information, see
Change the default storage class in the Kubernetes documentation.
Get the name of the current default StorageClass:
kubectl get sc
For example:
kubectl get sc
NAME PROVISIONER AGE
standard (default) kubernetes.io/gce-pd 98d
Describe the StorageClass named standard. Note that its
type is pd-standard:
Add this code to the file. Note that the name of the new class
is apigee-sc. You can use any name you like. Also, note that
the storage type is pd-ssd:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[[["\u003cp\u003eThe current Apigee hybrid documentation version (1.4) is end-of-life and needs an upgrade to a newer version for continued support.\u003c/p\u003e\n"],["\u003cp\u003eApigee hybrid uses dynamically created persistent volumes with an SSD-backed StorageClass for its Cassandra database to ensure optimal performance.\u003c/p\u003e\n"],["\u003cp\u003eTo configure Cassandra properly, a new StorageClass definition utilizing SSD storage must be created and then made the default.\u003c/p\u003e\n"],["\u003cp\u003eThe process to make a new StorageClass default includes getting the name of the current default, creating a new StorageClass definition with the type as pd-ssd, and then patching both the current and new StorageClass to reflect the change.\u003c/p\u003e\n"],["\u003cp\u003eYou can verify the new StorageClass has been correctly made default by using the 'kubectl get sc' command.\u003c/p\u003e\n"]]],[],null,["# StorageClass configuration\n\n| You are currently viewing version 1.4 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\n\nFor the Cassandra database, hybrid runtime uses\n[dynamically created](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#dynamic) persistent volumes to store data. To configure\nCassandra properly, you must configure a [StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes)\ndefinition that is backed by a solid-state drive (SSD).\n\n\nThis topic explains how to create a new StorageClass that uses SSD and make it the\ndefault class. When Cassandra starts, it will use this default StorageClass.\n| **KEY POINT:** For performance reasons, it is important that the StorageClass uses an SSD backend.\n\nChange the default StorageClass\n-------------------------------\n\n\nThe following steps explain how to create a StorageClass and make it the default class. For more\ninformation, see [Change the default storage class](https://kubernetes.io/docs/tasks/administer-cluster/change-default-storage-class/) in the Kubernetes documentation.\n\n1. Get the name of the current default StorageClass: \n\n ```\n kubectl get sc\n ```\n\n\n For example: \n\n kubectl get sc\n NAME PROVISIONER AGE\n standard (default) kubernetes.io/gce-pd 98d\n\n2. Describe the StorageClass named `standard`. Note that its type is `pd-standard`: \n\n ```\n kubectl describe sc standard\n ```\n\n\n For example: \n\n kubectl describe sc standard\n Name: standard\n IsDefaultClass: Yes\n Annotations: storageclass.beta.kubernetes.io/is-default-class=true\n Provisioner: kubernetes.io/gce-pd\n Parameters: type=pd-standard\n AllowVolumeExpansion: \u003cunset\u003e\n MountOptions: \u003cnone\u003e\n ReclaimPolicy: Delete\n VolumeBindingMode: Immediate\n Events: \u003cnone\u003e\n\n3. Create a new file called `storageclass.yaml`.\n4. Add this code to the file. Note that the name of the new class is `apigee-sc`. You can use any name you like. Also, note that the storage type is `pd-ssd`: \n\n ```\n ---\n kind: StorageClass\n apiVersion: storage.k8s.io/v1\n metadata:\n name: \"apigee-sc\"\n provisioner: kubernetes.io/gce-pd\n parameters:\n type: pd-ssd\n replication-type: none\n volumeBindingMode: WaitForFirstConsumer\n allowVolumeExpansion: true\n ```\n5. Apply the new StorageClass to your Kubernetes cluster: \n\n ```\n kubectl apply -f storageclass.yaml\n ```\n6. Execute the following two commands to change the default StorageClass: \n\n ```\n kubectl patch storageclass standard \\\n -p '{\"metadata\": {\"annotations\":{\"storageclass.kubernetes.io/is-default-class\":\"false\"}}}'\n ``` \n\n ```\n kubectl patch storageclass apigee-sc \\\n -p '{\"metadata\": {\"annotations\":{\"storageclass.kubernetes.io/is-default-class\":\"true\"}}}'\n ```\n7. Execute this command to verify that the new default StorageClass is called `apigee-sc`: \n\n ```\n kubectl get sc\n ```\n\n\n For example: \n\n kubectl get sc\n NAME PROVISIONER AGE\n apigee-sc (default) kubernetes.io/gce-pd 1d\n standard kubernetes.io/gce-pd 98d"]]