Apigee Hybrid menggunakan cincin node Cassandra sebagai StatefulSet. Cassandra menyediakan penyimpanan persisten untuk entity Apigee tertentu di bidang runtime. Untuk mengetahui informasi selengkapnya tentang Cassandra, lihat Tentang bidang runtime.
Cassandra adalah layanan intensif resource dan tidak boleh di-deploy pada pod dengan layanan hybrid lainnya. Bergantung pada bebannya, Anda mungkin ingin menskalakan jumlah node Cassandra dalam ring ke bawah di cluster Anda.
Proses umum untuk memperkecil skala ring Cassandra adalah:
- Menonaktifkan satu node Cassandra.
- Perbarui properti
cassandra.replicaCount
dioverrides.yaml
. - Terapkan update konfigurasi.
- Ulangi langkah-langkah ini untuk setiap node yang ingin Anda hapus.
- Hapus volume atau klaim volume persisten, bergantung pada konfigurasi cluster Anda.
Hal yang perlu diketahui
- Lakukan tugas ini pada satu node pada satu waktu sebelum melanjutkan ke node berikutnya.
- Jika ada node selain node yang akan dinonaktifkan tidak responsif, jangan lanjutkan. Kubernetes tidak akan dapat menurunkan skala pod dari cluster.
- Selalu kurangi atau tingkatkan skala dengan faktor tiga node.
Prasyarat
Sebelum menurunkan jumlah node Cassandra dalam ring, validasikan apakah cluster responsif dan semua node sudah aktif dan berjalan, seperti yang ditunjukkan contoh berikut:
kubectl get pods -n yourNamespace -l app=apigee-cassandra NAME READY STATUS RESTARTS AGE apigee-cassandra-0 1/1 Running 0 2h apigee-cassandra-1 1/1 Running 0 2h apigee-cassandra-2 1/1 Running 0 2h apigee-cassandra-3 1/1 Running 0 16m apigee-cassandra-4 1/1 Running 0 14m apigee-cassandra-5 1/1 Running 0 13m
kubectl -n yourNamespace exec -it apigee-cassandra-0 nodetool status Datacenter: us-east1 ==================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.16.2.6 690.17 KiB 256 48.8% b02089d1-0521-42e1-bbed-900656a58b68 ra-1 UN 10.16.4.6 700.55 KiB 256 51.6% dc6b7faf-6866-4044-9ac9-1269ebd85dab ra-1 to UN 10.16.11.11 144.36 KiB 256 48.3% c7906366-6c98-4ff6-a4fd-17c596c33cf7 ra-1 UN 10.16.1.11 767.03 KiB 256 49.8% ddf221aa-80aa-497d-b73f-67e576ff1a23 ra-1 UN 10.16.5.13 193.64 KiB 256 50.9% 2f01ac42-4b6a-4f9e-a4eb-4734c24def95 ra-1 UN 10.16.8.15 132.42 KiB 256 50.6% a27f93af-f8a0-4c88-839f-2d653596efc2 ra-1
Penonaktifan node Cassandra
-
Penonaktifan node Cassandra dari cluster menggunakan perintah nodetool.
kubectl -n yourNamespace exec -it nodeName nodetool decommission
Misalnya, perintah ini menonaktifkan
apigee-cassandra-5
, node dengan nilai angka tertinggi dalam namanya:kubectl -n apigee exec -it apigee-cassandra-5 nodetool decommission
- Tunggu hingga penghentian selesai, dan verifikasi bahwa cluster kini memiliki jumlah node berkurang. Contoh:
kubectl -n yourNamespace exec -it nodeName nodetool status Datacenter: us-east1 ==================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.16.2.6 710.37 KiB 256 59.0% b02089d1-0521-42e1-bbed-900656a58b68 ra-1 UN 10.16.4.6 720.97 KiB 256 61.3% dc6b7faf-6866-4044-9ac9-1269ebd85dab ra-1 UN 10.16.1.11 777.11 KiB 256 58.9% ddf221aa-80aa-497d-b73f-67e576ff1a23 ra-1 UN 10.16.5.13 209.23 KiB 256 62.2% 2f01ac42-4b6a-4f9e-a4eb-4734c24def95 ra-1 UN 10.16.8.15 143.23 KiB 256 58.6% a27f93af-f8a0-4c88-839f-2d653596efc2 ra-1
- Perbarui atau tambahkan properti
cassandra.replicaCount
di fileoverrides.yaml
Anda. Misalnya, jika jumlah node saat ini adalah 6, ubah menjadi 5:cassandra: replicaCount: 5 # (n-1)
- Terapkan perubahan konfigurasi ke cluster Anda. Contoh:
./apigeectl apply -v beta2 -c cassandra namespace/apigee unchanged secret/ssl-cassandra unchanged storageclass.storage.k8s.io/apigee-gcepd unchanged service/apigee-cassandra unchanged statefulset.apps/apigee-cassandra configured
- Pastikan semua node Cassandra yang tersisa sedang berjalan:
kubectl get pods -n yourNamespace -l app=apigee-cassandra NAME READY STATUS RESTARTS AGE apigee-cassandra-0 1/1 Running 0 3h apigee-cassandra-1 1/1 Running 0 3h apigee-cassandra-2 1/1 Running 0 2h apigee-cassandra-3 1/1 Running 0 25m apigee-cassandra-4 1/1 Running 0 24m
- Ulangi Langkah 1-5 untuk setiap node yang ingin dinonaktifkan.
- Setelah selesai menonaktifkan node, pastikan nilai
cassandra.replicaCount
sama dengan jumlah node yang ditampilkan oleh perintahnodetool status
.kubectl -n yourNamespace exec -it apigee-cassandra-0 nodetool status Datacenter: us-east1 ==================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.16.2.6 710.37 KiB 256 59.0% b02089d1-0521-42e1-bbed-900656a58b68 ra-1 UN 10.16.4.6 720.97 KiB 256 61.3% dc6b7faf-6866-4044-9ac9-1269ebd85dab ra-1 UN 10.16.1.11 777.11 KiB 256 58.9% ddf221aa-80aa-497d-b73f-67e576ff1a23 ra-1 UN 10.16.5.13 209.23 KiB 256 62.2% 2f01ac42-4b6a-4f9e-a4eb-4734c24def95 ra-1 UN 10.16.8.15 143.23 KiB 256 58.6% a27f93af-f8a0-4c88-839f-2d653596efc2 ra-1
- Setelah cluster Cassandra diperkecil, pastikan untuk menghapus pvc (PersistentVolumeClaim) guna memastikan peristiwa peningkatan skala berikutnya tidak menggunakan volume Persisten yang sama dengan data yang dibuat sebelumnya.
kubectl get pvc -n yourNamespace NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cassandra-data-apigee-cassandra-0 Bound pvc-f9c2a5b9-818c-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-1 Bound pvc-2956cb78-818d-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-2 Bound pvc-79de5407-8190-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-3 Bound pvc-d29ba265-81a2-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h cassandra-data-apigee-cassandra-4 Bound pvc-0675a0ff-81a3-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h cassandra-data-apigee-cassandra-5 Bound pvc-354afa95-81a3-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h
kubectl -n yourNamespace delete pvc cassandra-data-apigee-cassandra-5 persistentvolumeclaim "cassandra-data-apigee-cassandra-5" deleted
kubectl get pvc -n yourNamespace NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cassandra-data-apigee-cassandra-0 Bound pvc-f9c2a5b9-818c-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-1 Bound pvc-2956cb78-818d-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-2 Bound pvc-79de5407-8190-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-3 Bound pvc-d29ba265-81a2-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h cassandra-data-apigee-cassandra-4 Bound pvc-0675a0ff-81a3-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h
- Jika Anda menggunakan penginstalan Anthos, hapus juga volume Persisten dari cluster Anthos Kubernetes.
kubectl get pv -n youNamespace NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-0675a0ff-81a3-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-4 apigee-gcepd 5h pvc-2956cb78-818d-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-1 apigee-gcepd 7h pvc-354afa95-81a3-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-5 apigee-gcepd 5h pvc-79de5407-8190-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-2 apigee-gcepd 7h pvc-d29ba265-81a2-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-3 apigee-gcepd 5h pvc-f9c2a5b9-818c-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-0 apigee-gcepd 7h
kubectl -n yourNamespace delete pv pvc-354afa95-81a3-11e9-8862-42010a8e014a