Topik ini menjelaskan langkah-langkah yang harus Anda ambil untuk mengonfigurasi database Cassandra untuk penginstalan produksi hybrid Apigee.
Memastikan ketersediaan tinggi
Cluster Cassandra memerlukan tiga zona ketersediaan untuk menjaga ketersediaan dalam produksi lingkungan fleksibel App Engine. Jika satu zona tidak aktif, zona yang tersisa akan terus merespons permintaan sementara zona yang lain kembali online. Jika dua atau lebih zona mati, Cassandra akan menjadi tidak dapat merespons permintaan hingga setidaknya dua zona online. Rekomendasi Apigee mengembalikan zona ke sistem online dalam waktu tiga jam untuk meminimalkan risiko pembaruan data yang hilang.
Mengonfigurasi setelan penyimpanan Cassandra
Untuk penginstalan produksi Apigee Hybrid, Google merekomendasikan agar Anda menambahkan setelan penyimpanan dan heap berikut ke file pengganti dan menerapkannya ke cluster:
cassandra: ... replicaCount: 3 storage: storageclass: your-preferred-ssd-storage #If not using default storage for your cluster capacity: 500Gi resources: requests: cpu: 7 memory: 15Gi maxHeapSize: 8192M heapNewSize: 1200M
Terapkan perubahan pada cassandra dengan perintah berikut:
Helm
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE.yaml
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --datastore
replicaCount
Nilai replicaCount
harus kelipatan dari 3
. Untuk menentukan
nilai replicaCount
yang diinginkan, pertimbangkan hal berikut:
- Perkirakan permintaan traffic untuk proxy Anda.
- Lakukan pengujian beban dan buat prediksi yang wajar terkait penggunaan CPU Anda.
- Anda dapat menentukan nilai
replicaCount
yang berbeda di wilayah yang berbeda. - Anda dapat memperluas
replicaCount
di masa mendatang dalam file penggantian.
storageclass
Untuk produksi, penyimpanan Cassandra harus berupa StorageClass SSD. Tetapkan nilai
storageclass
jika Anda tidak menggunakan Kubernetes StorageClass default untuk
. Anda dapat memeriksa StorageClass default dengan perintah berikut.
kubectl get storageclass
Output Anda akan terlihat seperti:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 6d23h standard kubernetes.io/gce-pd Delete Immediate true 6d23h standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 6d23h
Ikuti petunjuk di Konfigurasi StorageClass jika Anda ingin untuk mengubah Kubernetes StorageClass default.
Untuk memeriksa setelan storageclass
saat ini, jalankan perintah berikut di cluster Anda:
kubectl get pvc -n NAMESPACE cassandra-data-apigee-cassandra-default-0 -o=jsonpath="{['.spec.storageClassName', '.metadata.annotations.volume\.beta\.kubernetes\.io/storage-class']}"
capacity
Untuk penginstalan produksi, Google merekomendasikan kapasitas penyimpanan minimal 500Gi (gibibyte). Anda dapat mengubah kapasitas penyimpanan sebagai respons terhadap kebutuhan penyimpanan cluster Anda. Lihat petunjuk dalam Memperluas volume persisten Cassandra untuk mengubah kapasitas penyimpanan.
Untuk memeriksa setelan kapasitas saat ini, jalankan perintah berikut di cluster Anda:
kubectl get pvc -n NAMESPACE cassandra-data-apigee-cassandra-default-0 -o=jsonpath='{.spec.resources.requests.storage}'
cpu
dan memory
Untuk penginstalan produksi, Google merekomendasikan minimal 7 CPU dan minimal 15Gi (gibibyte) per
pod. Saat menentukan cassandra.resources.requests.cpu
dan
cassandra.resources.requests.memory
, pertimbangkan volume traffic, CPU, dan
Permintaan memori proxy Anda.
Untuk memeriksa setelan CPU saat ini, jalankan perintah berikut di cluster Anda:
kubectl get pods -n NAMESPACE apigee-cassandra-default-0 -o=jsonpath='{.spec.containers[].resources.requests.cpu}'
Untuk memeriksa setelan memori saat ini, jalankan perintah berikut di cluster Anda:
kubectl get pods -n NAMESPACE apigee-cassandra-default-0 -o=jsonpath='{.spec.containers[].resources.requests.memory}'
maxHeapSize
dan heapNewSize
Properti ini menentukan heap memori maksimum yang dialokasikan untuk proses cassandra dan jumlahnya di mana memori ditingkatkan, masing-masing, dalam megabita (ukuran heap ditentukan dalam megabyte, bukan mebibyte). Untuk lingkungan produksi, Google merekomendasikan nilai berikut:
maxHeapSize: 8192M
heapNewSize: 1200M
Baca dokumentasi penyedia platform Kubernetes Anda untuk mengetahui nilai ukuran heap yang optimal.
Untuk memeriksa setelan maxHeapSize
saat ini, jalankan perintah berikut di cluster Anda:
kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.template.spec.containers[].env[?(@.name=="MAX_HEAP_SIZE")]}'
Untuk memeriksa setelan heapNewSize
saat ini, jalankan perintah berikut di cluster Anda:
kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.template.spec.containers[].env[?(@.name=="HEAP_NEWSIZE")]}'
Untuk informasi selengkapnya tentang setelan properti ini, lihat Referensi properti konfigurasi.
Gunakan penyimpanan SSD untuk deployment produksi
Untuk database Cassandra, runtime hybrid hanya mendukung penggunaan yang dibuat secara dinamis untuk menyimpan data. Drive Solid State Disk (SSD) lokal tidak didukung.
Jika saat ini Anda tidak memiliki SSD yang dikonfigurasi untuk Cassandra, Anda harus mengonfigurasi StorageClass yang didukung oleh {i>solid-state drive <i}(SSD) dan menjadikannya sebagai . Lihat Konfigurasi StorageClass untuk langkah-langkah mendetailnya.
Ikuti petunjuk di Konfigurasi StorageClass jika Anda ingin untuk mengubah Kubernetes StorageClass default.