Topik ini menjelaskan langkah-langkah yang diperlukan dan direkomendasikan untuk mengonfigurasi komponen database Cassandra untuk penginstalan produksi Apigee Hybrid.
Konfigurasi yang diperlukan
Konfigurasi berikut diperlukan.
Memastikan ketersediaan tinggi
Cluster Cassandra memerlukan tiga zona ketersediaan untuk mempertahankan ketersediaan di lingkungan produksi. Jika satu zona tidak aktif, zona yang tersisa akan terus merespons permintaan saat zona yang tersisa kembali online. Jika dua zona atau lebih tidak aktif, Cassandra tidak akan dapat merespons permintaan hingga setidaknya dua zona online. Apigee merekomendasikan untuk mengaktifkan kembali zona 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 penggantian 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 ke cassandra dengan perintah berikut:
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
replicaCount
Nilai replicaCount
harus berupa kelipatan 3
. Untuk menentukan nilai replicaCount
yang diinginkan, pertimbangkan hal-hal berikut:
- Perkiraan permintaan traffic untuk proxy Anda.
- Lakukan pengujian beban dan buat prediksi yang wajar tentang penggunaan CPU Anda.
- Anda dapat menentukan nilai
replicaCount
yang berbeda di berbagai region. - 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 StorageClass Kubernetes default untuk
cluster. Anda dapat memeriksa StorageClass default dengan perintah berikut.
kubectl get storageclass
Output Anda akan terlihat seperti ini:
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 mengubah StorageClass Kubernetes 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']}"
storageSize
Untuk penginstalan produksi, Google merekomendasikan ukuran penyimpanan minimal 500 Gi (gibibyte). Anda dapat mengubah ukuran penyimpanan sebagai respons terhadap kebutuhan penyimpanan cluster. Lihat petunjuk di Memperluas volume persisten Cassandra untuk mengubah kapasitas penyimpanan.
Untuk memeriksa setelan ukuran 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 minimum 15 Gi (gibibyte) per pod. Saat menentukan cassandra.resources.requests.cpu
dan
cassandra.resources.requests.memory
, pertimbangkan volume traffic serta permintaan CPU dan
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 jumlah peningkatan memori, masing-masing dalam megabyte (ukuran heap ditentukan dalam megabyte, bukan mebibyte). Untuk lingkungan produksi, Google merekomendasikan nilai berikut:
maxHeapSize: 8192M
heapNewSize: 1200M
Lihat dokumentasi penyedia platform Kubernetes 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.
Menggunakan penyimpanan SSD untuk deployment produksi
Untuk database Cassandra, runtime campuran hanya mendukung penggunaan volume persisten yang dibuat secara dinamis untuk menyimpan data. Drive solid state disk (SSD) lokal tidak didukung.
Jika saat ini Anda tidak mengonfigurasi SSD untuk Cassandra, Anda harus mengonfigurasi definisi StorageClass yang didukung oleh solid-state drive (SSD) dan menjadikannya class default. Lihat Konfigurasi StorageClass untuk mengetahui langkah-langkah mendetail.
Ikuti petunjuk di Konfigurasi StorageClass jika Anda ingin mengubah StorageClass Kubernetes default.
Konfigurasi yang direkomendasikan
Bagian ini menjelaskan konfigurasi yang direkomendasikan untuk Cassandra.
Mengonfigurasi jadwal pencadangan harian
Jika terjadi masalah Cassandra multi-regional setelah terjadi kesalahan konfigurasi, Google tidak akan dapat memulihkan data runtime, yang akan mengakibatkan hilangnya data secara permanen.
Untuk mencegah kehilangan data, konfigurasikan jadwal pencadangan harian. Pantau ukuran dan frekuensi pencadangan, serta pastikan Anda diberi tahu saat pipeline pencadangan gagal.
Mematuhi persyaratan cluster minimum Cassandra
Ikuti konfigurasi cluster minimal untuk Cassandra.
Perlakukan semua lingkungan yang ditampilkan kepada pelanggan sebagai produksi
Meskipun penginstalan campuran dianggap "non-prod", Anda mungkin masih memerlukan setelan yang siap produksi. Misalnya, pemadaman layanan pada penginstalan Pengujian Penerimaan Pengguna (UAT) akan memicu insiden berprioritas tinggi.
Gunakan setelan siap produksi bahkan untuk penginstalan hybrid yang ditampilkan kepada pelanggan "non-prod".
Sebaiknya Anda mematuhi prinsip yang sama untuk semua lingkungan yang ditampilkan kepada pelanggan seperti untuk
server produksi, seperti yang diuraikan dalam artikel ini. Secara khusus, ikuti prinsip pemulihan dari bencana menggunakan replicaCount
dan region.
Lihat Mengonfigurasi setelan penyimpanan Cassandra untuk mengetahui detailnya.