Anda sedang melihat dokumentasi Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Gejala
Saat mereplikasi data selama perluasan multi-region, status CassandraDataReplication
dapat menampilkan status error dan replikasi data dapat gagal.
Pesan error
Saat Anda menggunakan
kubectl
untuk melihat status pembangunan ulang:
kubectl -n apigee get apigeeds \ -o jsonpath="{.items[].status.cassandraDataReplication}{'\n'}"
Anda melihat bahwa satu atau beberapa pod Cassandra menunjukkan status error dan pesan yang menyatakan bahwa pembangunan ulang telah gagal. Contoh:
{ "rebuildDetails": { "apigee-cassandra-default-0": { "message": "failed to rebuild from us-west1: java.lang.IllegalStateException : Unable to find sufficient sources for streaming range (-8567285182390470134,-8567154549835592965] in keyspace system_distributed", "state": "error", "updated": 1641581899 }, … } }
Kemungkinan penyebab
Penyebab | Deskripsi | Petunjuk pemecahan masalah yang berlaku untuk |
---|---|---|
Wilayah asal salah | Nilai yang salah ditentukan untuk source.region dalam file YAML replikasi data Cassandra. |
Apigee hybrid |
Masalah konektivitas jaringan | Mungkin ada masalah konektivitas jaringan antara pod Cassandra di pusat data yang berbeda. | Apigee hybrid |
Langkah-langkah diagnosis umum
- Ambil status replikasi data:
kubectl -n apigee get apigeeds \
-o jsonpath="{.items[].status.cassandraDataReplication}{'\n'}" - Jika Anda melihat error dengan pesan yang mirip dengan yang ditentukan dalam Pesan error, berarti Anda mengalami masalah ini.
Penyebab: Wilayah sumber salah
Jika Anda menentukan region sumber (datacenter
) dalam file YAML replikasi data yang
berbeda dengan datacenter
sumber sebenarnya, replikasi data akan gagal. Lakukan langkah-langkah di Diagnosis untuk menganalisis skenario ini dan
lakukan langkah-langkah di Penyelesaian untuk memperbaikinya.
Diagnosis
- Mencantumkan semua pod Cassandra di region sumber:
kubectl -n apigee get pods -l app=apigee-cassandra
- Dapatkan nilai
datacenter
sebenarnya dari salah satu pod Cassandra yang ditampilkan di langkah 1:kubectl -n apigee exec -it apigee-cassandra-default-0 -- \ nodetool -u JMX_user -pw JMX_password status
- Dapatkan nilai yang digunakan untuk
source.region
dalam file resource kustom (YAML) replikasi data Cassandra yang Anda buat di Deployment multi-region. Jika Anda menggunakan nama file contoh yang ada di dokumentasi Deployment multi-region, maka file harus diberi namadatareplication.yaml
.cat datareplication.yaml
Contoh hasil:
apiVersion: apigee.cloud.google.com/v1alpha1 kind: CassandraDataReplication metadata: name: region-expansion namespace: apigee spec: organizationRef: apigee-hybrid-example-org force: false source: region: "us-west1"
Periksa hasil output
nodetool status
dan verifikasi apakah nilaidatacenter
cocok dengan nilaisource.region
:kubectl -n apigee exec -it apigee-cassandra-default-0 -- \ nodetool -u jmxuser -pw iloveapis123 status
Contoh hasil:
Datacenter: dc-1 ================ Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.104.13.2 491.84 KiB 256 100.0% 7254711c-fe0a-4b34-b50f-861109f97936 ra-1 UN 10.104.11.3 527.36 KiB 256 100.0% 5ec389f0-fd67-4de6-9f21-172d5899ff78 ra-1 UN 10.104.12.7 838.46 KiB 256 100.0% 7a88be82-1f81-4117-86e3-2cda434c0878 ra-1
- Perhatikan bahwa
source.region
(us-west1
) dari filedatareplication.yaml
tidak cocok dengan nilaidatacenter
sebenarnya (dc-1
) dari output statusnodetool
. Ikuti langkah-langkah di Penyelesaian untuk memperbaiki konfigurasi.
Resolusi
Untuk memperbaiki replikasi data, Anda harus menghapus tugas replikasi data dan membuatnya
dengan nama datacenter
yang benar. Lakukan langkah-langkah berikut:
- Hapus proses replikasi data saat ini. Jika menggunakan contoh nama file yang ada dalam dokumentasi
Deployment multi-region, maka file harus diberi nama
datareplication.yaml
.kubectl delete -f datareplication.yaml
- Perbarui nama region dalam file YAML ke nilai
datacenter
yang benar, misalnyadc-1
:apiVersion: apigee.cloud.google.com/v1alpha1 kind: CassandraDataReplication metadata: name: region-expansion namespace: apigee spec: organizationRef: apigee-hybrid-example-org force: false source: region: "dc-1"
- Terapkan replikasi data yang telah diperbarui:
kubectl apply -f datareplication.yaml
- Periksa status pembangunan ulang menggunakan perintah berikut dan pastikan Anda tidak lagi melihat status error yang dilaporkan sebelumnya:
kubectl -n apigee get apigeeds \ -o jsonpath="{.items[].status.cassandraDataReplication}{'\n'}"
- Jika masalah masih berlanjut, lanjutkan ke Penyebab: Masalah konektivitas jaringan.
Penyebab: Masalah konektivitas jaringan
Error replikasi data juga dapat disebabkan oleh masalah konektivitas antara node Cassandra.
Diagnosis
Lakukan langkah-langkah berikut untuk menganalisis skenario ini:
- Mencantumkan semua pod Cassandra:
# list cassandra pods kubectl -n=apigee get pods -l app=apigee-cassandra
- Jalankan perintah berikut untuk melakukan telnet ke pod Cassandra pertama di
pusat data kedua (
dc-2
) dari pod Cassandra pertama di pusat data pertama (dc-1
) menggunakan port7001
:k debug -it apigee-cassandra-default-0 -n apigee --image=nginx -- sh curl -v telnet://DC_2_APIGEE_CASSANDRA_DEFAULT_0_POD_IP:7001
- Jika telnet berhasil, output yang mirip dengan berikut akan ditampilkan:
* Rebuilt URL to: telnet://10.0.4.10:7001/ * Trying 10.0.4.10... * TCP_NODELAY set * Connected to 10.0.4.10 (10.0.4.10) port 7001 (#0)
- Jika tidak, error yang mirip dengan berikut akan ditampilkan:
* Rebuilt URL to: telnet://10.0.4.10:7001/ * Trying 10.0.4.10... * TCP_NODELAY set * connect to 10.0.4.10 port 7001 failed: Connection refused * Failed to connect to 10.0.4.10 port 7001: Connection refused * Closing connection 0 curl: (7) Failed to connect to 10.0.4.10 port 7001: Connection refused
Kegagalan konektivitas dari pod Cassandra di satu pusat data ke pod Cassandra di pusat data lain menunjukkan bahwa pasti ada pembatasan firewall atau semacam masalah konektivitas jaringan.
Resolusi
- Jika deployment hybrid Apigee ini ada di GKE, periksa apakah ada aturan firewall yang ditetapkan yang memblokir traffic dari satu pusat data ke pusat data lain dan analisis masalah konektivitas jaringan dengan melihat Ringkasan aturan firewall VPC.
- Jika deployment hybrid Apigee ini ada di GKE-on-prem, hubungi tim jaringan yang relevan dan analisis masalah konektivitas jaringan.
Jika masalah masih berlanjut, buka Informasi diagnostik yang harus dikumpulkan.
Harus mengumpulkan informasi diagnostik
Jika masalah berlanjut bahkan setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut, lalu hubungi Layanan Pelanggan Google Cloud:
- ID Project Google Cloud.
- Organisasi Apigee Hybrid.
- File
overrides.yaml
dari wilayah sumber dan wilayah baru, menyamarkan informasi sensitif. - File YAML
CassandraDataReplication
. - Output Cassandra
nodetool status
:kubectl -n apigee exec -it apigee-cassandra-default-0 -- \ nodetool -u JMX_user -pw JMX_password status
- Output Cassandra
nodetool describecluster
:kubectl -n apigee exec -it apigee-cassandra-default-0 -- \ nodetool -u JMX_user -pw JMX_password describecluster