Halaman ini menjelaskan cara memigrasikan organisasi hybrid Apigee dari satu organisasi cluster Kubernetes ke cluster lain. Beberapa kasus saat Anda mungkin perlu melakukan migrasi dari satu organisasi ke cluster lain adalah sebagai berikut:
- Pusat data yang menghosting cluster yang ada tidak memiliki kapasitas lagi, atau akan dihentikan.
- Cluster ini 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 dalam cluster terpisah.
Perlu diperhatikan bahwa ada risiko dan keterbatasan saat memigrasikan organisasi ke cluster hibrida lainnya. Baca detailnya di Batasan sebelum melakukan migrasi.
Batasan
Batasan berikut berlaku saat memigrasikan organisasi hybrid ke cluster Kubernetes lain:
- Terdapat risiko kehilangan data saat memindahkan data organisasi ke cluster Kubernetes baru. Anda harus mencadangkan data untuk semua organisasi di cluster Kubernetes, menggunakan pencadangan hybrid petunjuk khusus, sebelum memigrasikan organisasi.
- Ukuran data maksimum yang didukung untuk migrasi organisasi adalah 5 GB di semua ruang kunci organisasi, kecuali cache dan kuota.
- Data cache tidak akan dimigrasikan. Hybrid membangun ulang data cache.
- Data kuota tidak akan dimigrasikan. Sistem hybrid mereset data kuota.
- Anda hanya dapat memigrasikan organisasi ke cluster Kubernetes yang tidak berisi organisasi deployment hybrid. Migrasi ke cluster yang sudah memiliki deployment hybrid tidak didukung.
- Organisasi yang dimigrasikan hanya dapat dipindahkan ke cluster baru dengan deployment satu region. Setelah deployment region tunggal aktif dan berjalan, Anda dapat mengikuti region tersebut proses perluasan, dijelaskan di Multi-region deployment, untuk memperluas ke region lain.
- Cluster Cassandra harus beroperasi dalam kondisi kesehatan yang baik di semua region.
Memigrasikan suatu organisasi
Ikuti petunjuk di bawah ini untuk memigrasikan organisasi hybrid dari satu cluster Kubernetes ke cluster lain:
- Jika belum diaktifkan, aktifkan pencadangan di cluster Kubernetes yang berisi organisasi hybrid untuk dimigrasikan. Lihat Ringkasan pencadangan Cassandra untuk 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
Pemantauan
cadangan untuk memverifikasi bahwa pencadangan telah berhasil diselesaikan:
- "Memeriksa status tugas pencadangan"
- "Periksa log cadangan"
- Setelah memverifikasi bahwa pencadangan berhasil, catat nomor ID di bagian akhir
dari log cadangan.
Misalnya, log pencadangan yang berhasil harus berisi baris seperti berikut:
INFO: completed upload for 20230207004250
Buat catatan angka multi-digit di akhir baris. Anda akan memerlukan nomor ini nanti. - Alihkan konteks Kubernetes ke cluster Kubernetes tujuan:
kubectl config use-context <destination cluster name> # <destination cluster name>
dengan
<destination cluster name>
adalah nama Kubernetes tujuan . - Pulihkan data cadangan ke cluster Kubernetes tujuan menggunakan petunjuk di
Memulihkan di satu region.
- Menggunakan file replace.yaml untuk organisasi yang sedang dimigrasikan ke hybrid tujuan deployment.
- Jangan lupa menetapkan nilai
restore:snapshotTimestamp
ke multi-digit angka yang ditunjukkan oleh {i> log cadangan<i} di langkah 4. Lihat Memulihkan di satu region.
- Setelah pemulihan selesai, hapus semua data organisasi, selain data untuk organisasi yang
yang dimigrasikan, dari cluster Kubernetes tujuan. File cadangan hybrid
berisi data untuk semua
organisasi Anda, termasuk yang
mungkin tidak ingin Anda migrasikan. Setelah tujuan hybrid
deployment dipulihkan, Anda perlu menghapus
data organisasi tambahan yang disalin ke
deployment, dengan mengikuti langkah-langkah berikut:
- Pastikan konteks saat ini adalah konteks yang benar untuk cluster Kubernetes tujuan:
kubectl config current-context
- Eksekusi 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 mendapatkan petunjuk cara menemukan
<migrated org name>
.Salin daftar semua nama yang ditampilkan dalam {i>output<i} tersebut. Anda akan membutuhkan daftar ini pada langkah 7. f.
- Keluar dari pod
apigee-cassandra-default-0
. - Membuat pod klien debug Cassandra menggunakan petunjuk dalam
Buat penampung klien untuk proses debug. Lanjutkan ke langkah berikutnya setelah mendapatkan
Dialog
cqlsh
. - Jalankan perintah berikut di perintah
cqlsh
:-
desc keyspaces;
Pastikan perintah ini tidak menampilkan error.
- Untuk setiap nama dalam daftar yang dibuat di 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 mendapatkan petunjuk 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 organisasi yang dimigrasikan dari cluster Kubernetes sumber. Pastikan untuk menggunakan
File
overrides.yaml
untuk org dalam perintah hapus:- Pastikan konteks saat ini adalah konteks yang benar untuk cluster Kubernetes sumber:
kubectl config current-context
Jika perlu, setel konteks Kubernetes ke cluster dan organisasi perlu dinonaktifkan.
Buat daftar konteks Anda saat ini untuk melihat nama konteks setiap cluster:
kubectl config get-contexts
Tetapkan konteks ke cluster dan region yang ingin Anda nonaktifkan:
kubectl config use-context CONTEXT_NAME
Dengan CONTEXT_NAME adalah nama konteks untuk cluster dan region.
Contoh:
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE gke_example-org-1_us-central1_example-cluster-1 gke_example-org-1_us-central1_example-cluster-1 gke_example-org-1_us-central1_example-cluster-1 apigee * gke_example-org-1_us-central1_example-cluster-2 gke_example-org-1_us-central1_example-cluster-2 gke_example-org-1_us-central1_example-cluster-2 apigee gke_example-org-1_us-west1_example-cluster-2 gke_example-org-1_us-west1_example-cluster-2 gke_example-org-1_us-west1_example-cluster-2 apigeekubectl config use-context gke_example-org-1_us-west1_example-cluster-2
- Hapus virtualhost. Ulangi langkah ini untuk setiap grup lingkungan:
helm -n apigee delete ENV_GROUP_NAME
- Hapus lingkungan. Ulangi langkah ini untuk setiap lingkungan:
helm -n apigee delete ENV_NAME
- Hapus organisasi Apigee.
helm -n apigee delete ORG_NAME
- Jalankan 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 mendapatkan petunjuk cara menemukan
<migrated org name>
.Salin daftar semua nama yang ditampilkan di output. Anda akan membutuhkan daftar ini pada langkah 9. j.
- Keluar dari pod
apigee-cassandra-default-0
. - Membuat pod klien debug Cassandra menggunakan petunjuk dalam
Buat penampung klien untuk proses debug. Lanjutkan ke langkah berikutnya
setelah mendapatkan perintah
cqlsh
. - Jalankan perintah berikut pada 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 mendapatkan petunjuk 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:
Dapatkan nama organisasi yang dimigrasikan
Beberapa langkah dalam prosedur yang dijelaskan di bagian sebelumnya memerlukan nama organisasi yang dimigrasikan. Untuk mendapatkan nama organisasi yang dimigrasikan, lakukan hal berikut:
- Dapatkan nama organisasi dari file override.yaml organisasi. Pastikan untuk memeriksa penggantian.yaml untuk organisasi yang dimigrasikan.
- Jika nama organisasi berisi tanda hubung "-", ganti semua tanda hubung "-" dengan garis bawah "_".