Database Cassandra menggunakan volume persisten yang
dibuat secara dinamis untuk menyimpan data. Agar database berfungsi dengan baik, Apigee mengharuskan Anda mengonfigurasi definisi StorageClass yang didukung oleh solid-state drive (SSD).
Jika saat ini Anda belum mengonfigurasi SSD untuk Cassandra, topik ini menjelaskan cara membuat
StorageClass baru yang menggunakan SSD dan menjadikannya
kelas default. Saat Cassandra dimulai, Cassandra akan menggunakan StorageClass default ini.
Langkah-langkah yang diuraikan dalam topik ini untuk konfigurasi StorageClass hanya berlaku untuk penginstalan Cassandra baru. Jika sudah menginstal class Cassandra, Anda harus menonaktifkan cluster yang ada untuk mengonfigurasi definisi StorageClass. Perubahan pada definisi StorageClass cluster Cassandra yang ada setelah penginstalan tidak didukung.
Apigee merekomendasikan deployment hybrid di dua region atau lebih,
untuk menonaktifkan dan menginstal ulang satu region
sambil mempertahankan data di region sekunder. Atau, Anda dapat menggunakan pencadangan hybrid non-CSI untuk memulihkan
data dalam penginstalan satu region, setelah menonaktifkan dan mengonfigurasi definisi StorageClass yang diperlukan.
Mengubah StorageClass default
Langkah-langkah berikut menjelaskan cara membuat StorageClass dan menjadikannya class default. Untuk mengetahui informasi selengkapnya, lihat
Mengubah kelas penyimpanan default dalam dokumentasi Kubernetes.
Dapatkan nama StorageClass default saat ini:
kubectl get sc
Contoh:
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h
standard kubernetes.io/gce-pd Delete Immediate true 15h
standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h
Deskripsikan StorageClass bernama standard-rwo. Perhatikan bahwa jenisnya adalah pd-balanced:
Tambahkan kode ini ke file. Perhatikan bahwa nama class baru
adalah apigee-sc. Anda dapat menggunakan nama apa pun yang Anda suka. Selain itu, perhatikan bahwa
jenis penyimpanan adalah pd-ssd:
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-18 UTC."],[],[],null,["# StorageClass configuration\n\nThe Cassandra database uses\n[dynamically created](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#dynamic) persistent volumes to store data. For proper database functioning,\nApigee requires you to configure a [StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes)\ndefinition that is backed by a solid-state drive (SSD).\n\n\nIf you do not currently have SSD configured for Cassandra, this topic explains how to create a\nnew StorageClass that uses SSD and make it the\ndefault class. When Cassandra starts, it will use this default StorageClass.\n| **KEY POINT:** Apigee requires the use of SSD for Cassandra.\n\nThe steps outlined in this topic for StorageClass configuration are only applicable to a *new*\nCassandra installation. If you already have a Cassandra class installed, you must decommission the existing\ncluster in order to configure the StorageClass definition. Changes to the StorageClass definition of an\nexisting Cassandra cluster after installation are not supported.\n\nApigee recommends deploying hybrid in [two or more regions](/apigee/docs/hybrid/v1.15/multi-region),\nin order to decommission and re-install one region\nwhile preserving data in the secondary region. Alternatively, you can use a [non-CSI hybrid backup](/apigee/docs/hybrid/v1.15/cassandra-backup-overview#how-to-take-backups) to restore\ndata in a single-region installation, after decommissioning and configuring the required StorageClass definition.\n\n\u003cbr /\u003e\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 RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE\n premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h\n standard kubernetes.io/gce-pd Delete Immediate true 15h\n standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h\n \n2. Describe the StorageClass named `standard-rwo`. Note that its type is `pd-balanced`: \n\n ```\n kubectl describe sc standard-rwo\n ```\n\n\n For example: \n\n ```text\n kubectl describe sc standard-rwo\n ``` \n\n ```\n Name: standard-rwo\n IsDefaultClass: Yes\n Annotations: components.gke.io/layer=addon,storageclass.kubernetes.io/is-default-class=false\n Provisioner: pd.csi.storage.gke.io\n Parameters: type=pd-balanced\n AllowVolumeExpansion: True\n MountOptions: \u003cnone\u003e\n ReclaimPolicy: Delete\n VolumeBindingMode: WaitForFirstConsumer\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 ```carbon\n ---\n kind: StorageClass\n apiVersion: storage.k8s.io/v1\n metadata:\n name: \"apigee-sc\"\n provisioner: pd.csi.storage.gke.io\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-rwo \\\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\n ```\n NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE\n apigee-sc (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 14h\n premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h\n standard kubernetes.io/gce-pd Delete Immediate true 15h\n standard-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h\n \n ```\n8. Describe both the StorageClass to verify the value of **IsDefaultClass** . \n\n ```\n kubectl describe sc apigee-sc\n ``` \n\n ```\n Name: apigee-sc\n IsDefaultClass: Yes\n Annotations: kubectl.kubernetes.io/last-applied-configuration={\"allowVolumeExpansion\":true,\"apiVersion\":\"storage.k8s.io/v1\",\"kind\":\"StorageClass\",\"metadata\":{\"annotations\":{},\"name\":\"apigee-sc\"},\"parameters\":{\"replication-type\":\"none\",\"type\":\"pd-ssd\"},\"provisioner\":\"pd.csi.storage.gke.io\",\"volumeBindingMode\":\"WaitForFirstConsumer\"}\n ,storageclass.kubernetes.io/is-default-class=true\n Provisioner: pd.csi.storage.gke.io\n Parameters: replication-type=none,type=pd-ssd\n AllowVolumeExpansion: True\n MountOptions: \n ReclaimPolicy: Delete\n VolumeBindingMode: WaitForFirstConsumer\n Events: \n \n ``` \n\n ```\n kubectl describe sc standard-rwo\n ``` \n\n ```\n Name: standard-rwo\n IsDefaultClass: No\n Annotations: components.gke.io/layer=addon,storageclass.kubernetes.io/is-default-class=false\n Provisioner: pd.csi.storage.gke.io\n Parameters: type=pd-balanced\n AllowVolumeExpansion: True\n MountOptions: \n ReclaimPolicy: Delete\n VolumeBindingMode: WaitForFirstConsumer\n Events: \n \n ```"]]