Halaman ini menjelaskan cara memigrasikan org hybrid Apigee dari satu cluster Kubernetes ke cluster Kubernetes lainnya. Beberapa kasus yang mungkin mengharuskan Anda memigrasikan organisasi ke cluster lain adalah sebagai berikut:
- Pusat data yang menghosting cluster yang ada tidak memiliki kapasitas lagi, atau sedang dinonaktifkan.
- Cluster menjalankan infrastruktur lama atau Kubernetes versi lama, dan Anda ingin bermigrasi ke cluster dengan infrastruktur yang lebih baru.
- Anda ingin memindahkan organisasi dari cluster multi-org ke cluster terpisah.
Perhatikan bahwa ada risiko dan batasan saat memigrasikan org ke cluster hybrid lain. Baca detailnya di bagian Batasan sebelum melakukan migrasi.
Batasan
Batasan berikut berlaku saat memigrasikan organisasi hybrid ke cluster Kubernetes lain:
- Ada risiko kehilangan data saat memindahkan data organisasi ke cluster Kubernetes baru. Anda harus mencadangkan data untuk semua organisasi di cluster Kubernetes, menggunakan petunjuk pencadangan hibrida, sebelum memigrasikan organisasi.
- Ukuran data maksimum yang didukung untuk migrasi organisasi adalah 5 GB di semua keyspace organisasi, tidak termasuk cache dan kuota.
- Data cache tidak akan dimigrasikan. Hybrid membangun kembali data cache.
- Data kuota tidak akan dimigrasikan. Hybrid mereset data kuota.
- Anda hanya dapat memigrasikan organisasi ke cluster Kubernetes yang tidak berisi deployment hybrid yang ada. Migrasi ke cluster dengan deployment hybrid yang sudah ada tidak didukung.
- Organisasi yang dimigrasikan hanya dapat dipindahkan ke cluster baru dengan deployment satu wilayah. Setelah deployment region tunggal berjalan, Anda dapat mengikuti proses perluasan region, yang dijelaskan dalam Deployment multi-region, untuk memperluas ke region lain.
- Cluster Cassandra harus beroperasi dengan baik di semua region.
Memigrasikan organisasi
Ikuti petunjuk di bawah untuk memigrasikan organisasi hybrid dari satu cluster Kubernetes ke cluster Kubernetes lainnya:
- Jika belum diaktifkan, aktifkan pencadangan di cluster Kubernetes yang berisi organisasi hybrid yang akan dimigrasikan. Lihat Ringkasan pencadangan Cassandra untuk mengetahui informasi tentang pencadangan hybrid.
- Mulai tugas pencadangan hybrid menggunakan perintah berikut:
kubectl create job -n apigee --from=cronjob/apigee-cassandra-backup <backup job name>
<backup job name>dapat berupa nama penampung yang valid. - Setelah tugas pencadangan selesai, gunakan petunjuk di bagian berikut dari
Memantau
pencadangan untuk memverifikasi bahwa pencadangan telah berhasil diselesaikan:
- "Periksa status tugas pencadangan"
- "Periksa log pencadangan"
- Setelah memverifikasi bahwa pencadangan berhasil, catat nomor ID di akhir
log pencadangan.
Misalnya, log pencadangan yang berhasil harus berisi baris seperti berikut:
Catat bilangan multi-digit di akhir baris. Anda akan memerlukan nomor ini nanti.INFO: completed upload for 20230207004250
- Alihkan konteks Kubernetes ke cluster Kubernetes tujuan:
kubectl config use-context <destination cluster name> # <destination cluster name>
dengan
<destination cluster name>adalah nama cluster Kubernetes tujuan. - Pulihkan data cadangan ke cluster Kubernetes tujuan menggunakan petunjuk di
Memulihkan di satu region.
- Gunakan file overrides.yaml untuk organisasi yang dimigrasikan ke deployment hybrid tujuan.
- Ingatlah untuk menyetel nilai
restore:snapshotTimestampke angka multi-digit yang ditampilkan oleh log cadangan pada langkah 4. Lihat Memulihkan di satu region.
- Setelah pemulihan selesai, hapus semua data organisasi, selain data untuk organisasi yang
dimigrasikan, dari cluster Kubernetes tujuan. File cadangan hybrid berisi data untuk semua
organisasi, termasuk organisasi yang mungkin tidak ingin Anda migrasikan. Setelah deployment hibrida tujuan dipulihkan, Anda harus menghapus data organisasi tambahan yang disalin ke deployment menggunakan langkah-langkah berikut:
- Pastikan konteks saat ini adalah konteks yang benar untuk cluster Kubernetes tujuan:
kubectl config current-context
- Jalankan perintah exec ke pod
apigee-cassandra-default-0:kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
- Jalankan perintah berikut:
find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*<migrated org name>*' -type d -maxdepth 2 -printf "%f\n"
Lihat Mendapatkan nama organisasi yang dimigrasikan untuk mengetahui petunjuk tentang cara menemukan
<migrated org name>.Salin daftar semua nama yang ditampilkan dalam output. Anda akan memerlukan daftar ini di langkah 7. f.
- Keluar dari pod
apigee-cassandra-default-0. - Buat pod klien debug Cassandra menggunakan petunjuk di
Membuat container klien untuk proses debug. Lanjutkan ke langkah berikutnya setelah mendapatkan perintah
cqlsh. - Jalankan perintah berikut di prompt
cqlsh:-
desc keyspaces;
Pastikan perintah ini tidak menampilkan error.
- Untuk setiap nama dalam daftar yang dibuat pada langkah 7. c., jalankan perintah berikut:
drop keyspace <name>
-
- Keluar dari pod klien debug Cassandra.
- Setelah menjalankan perintah
cqlsh, jalankan perintah berikut di semua pod Cassandra di cluster Kubernetes tujuan:kubectl exec -it -n apigee
-- /bin/bash find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*<migrated org name>*' -type d -maxdepth 2
Lihat Mendapatkan nama organisasi yang dimigrasikan untuk mengetahui petunjuk tentang cara menemukan
<migrated org name>.find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*
*' -type d -maxdepth 2 -exec rm -rf {} +
- Keluar dari pod Cassandra.
- Pastikan konteks saat ini adalah konteks yang benar untuk cluster Kubernetes tujuan:
- Alihkan konteks Kubernetes ke cluster Kubernetes sumber:
kubectl config use-context <source cluster name>
dengan
<source cluster name>adalah nama cluster Kubernetes sumber. - Hapus org yang dimigrasikan dari cluster Kubernetes sumber. Pastikan untuk menggunakan
file
overrides.yamluntuk org dalam perintah penghapusan:- Pastikan konteks saat ini adalah konteks yang benar untuk cluster Kubernetes sumber:
kubectl config current-context
apigeectl delete --settings virtualhost -f <overrides.yaml>
apigeectl delete --all-envs -f <overrides.yaml>
apigeectl delete -f <overrides.yaml> --org
- Jalankan perintah exec ke pod apigee-cassandra-default-0:
kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
- Jalankan perintah berikut:
find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -printf "%f\n"
Lihat Mendapatkan nama organisasi yang dimigrasikan untuk mengetahui petunjuk tentang cara menemukan
<migrated org name>.Salin daftar semua nama yang ditampilkan dalam output. Anda akan memerlukan daftar ini di langkah 9. j.
- Keluar dari pod
apigee-cassandra-default-0. - Buat pod klien debug Cassandra menggunakan petunjuk di
Membuat container klien untuk proses debug. Lanjutkan ke langkah berikutnya
setelah mendapatkan perintah
cqlsh. - Jalankan perintah berikut di prompt
cqlsh:desc keyspaces;
Pastikan perintah ini tidak menampilkan error.
- Untuk setiap nama dalam daftar yang dibuat di langkah 10. f.,
Jalankan perintah berikut:
drop keyspace <name>;
- Keluar dari pod klien debug Cassandra. Setelah menjalankan perintah
-
kubectl exec -it -n apigee <cassandra pod name> -- /bin/bash
-
find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2
Lihat Mendapatkan nama organisasi yang dimigrasikan untuk mengetahui petunjuk tentang cara menemukan
<migrated org name>. -
find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -exec rm -rf {} + - Keluar dari pod Cassandra.
cqlsh, jalankan perintah berikut di semua pod Cassandra di cluster Kubernetes sumber: - Pastikan konteks saat ini adalah konteks yang benar untuk cluster Kubernetes sumber:
Mendapatkan nama organisasi yang dimigrasikan
Beberapa langkah dalam prosedur yang dijelaskan di bagian sebelumnya memerlukan nama organisasi yang dimigrasikan. Untuk mendapatkan nama org yang dimigrasikan, lakukan hal berikut:
- Dapatkan nama org dari file overrides.yaml org. Pastikan untuk memeriksa file overrides.yaml untuk organisasi yang dimigrasikan.
- Jika nama organisasi berisi tanda hubung "-", ganti semua tanda hubung "-" dengan garis bawah "_".