Halaman ini menjelaskan cara memigrasikan organisasi hybrid Apigee dari satu cluster Kubernetes ke cluster lain. Beberapa kasus yang memungkinkan Anda memigrasikan sebuah 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 versi lama Kubernetes, 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 batasan saat memigrasikan organisasi 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 dalam cluster Kubernetes, menggunakan petunjuk pencadangan hybrid, 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 ulang data cache.
- Data kuota tidak akan dimigrasikan. Hybrid mereset data kuota.
- Anda hanya dapat memigrasikan organisasi ke cluster Kubernetes yang tidak berisi deployment hybrid. Bermigrasi ke cluster dengan deployment hybrid yang ada tidak didukung.
- Organisasi yang sedang dimigrasikan hanya dapat dipindahkan ke cluster baru dengan deployment region tunggal. Setelah deployment satu region aktif dan berjalan, Anda dapat mengikuti proses perluasan region, yang dijelaskan dalam Deployment multi-region, untuk memperluasnya ke region lain.
- Klaster Cassandra harus beroperasi dengan kondisi baik di semua region.
Memigrasikan 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 yang akan dimigrasikan. Lihat Ringkasan pencadangan Casssandra 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 Pencadangan pemantauan berikut untuk memverifikasi bahwa pencadangan telah berhasil diselesaikan:
- "Memeriksa status tugas pencadangan"
- "Periksa log cadangan"
- Setelah memverifikasi bahwa pencadangan berhasil, catat nomor ID di akhir
log pencadangan.
Misalnya, log pencadangan yang berhasil harus berisi baris seperti berikut:
INFO: completed upload for 20230207004250
Catat bilangan 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 cluster Kubernetes tujuan. - Pulihkan data cadangan ke dalam cluster Kubernetes tujuan menggunakan petunjuk dalam artikel
Memulihkan di satu region.
- Gunakan file Replace.yaml untuk organisasi yang sedang dimigrasikan ke deployment hybrid tujuan.
- Jangan lupa menyetel nilai
restore:snapshotTimestamp
ke angka multi-digit yang ditunjukkan oleh log cadangan di langkah 4. Lihat Memulihkan di satu region.
- Setelah pemulihan selesai, hapus semua data organisasi, selain data untuk organisasi yang sedang dimigrasikan, dari cluster Kubernetes tujuan. File cadangan campuran berisi data untuk semua
organisasi, termasuk yang mungkin tidak ingin Anda migrasikan. Setelah deployment hybrid tujuan dipulihkan, Anda harus menghapus semua data organisasi tambahan yang disalin ke deployment, menggunakan langkah-langkah berikut:
- Verifikasi bahwa konteks saat ini adalah konteks yang benar untuk cluster Kubernetes tujuan:
kubectl config current-context
- Mengeksekusi 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 tentang cara menemukan
<migrated org name>
.Salin daftar semua nama yang ditampilkan dalam output. Anda akan membutuhkan daftar ini di langkah 7. f.
- Keluar dari pod
apigee-cassandra-default-0
. - Buat pod klien debug Cassandra menggunakan petunjuk di
Membuat penampung klien untuk proses debug. Lanjutkan ke langkah berikutnya setelah mendapatkan
perintah
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 pada 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 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.
- Verifikasi bahwa 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 Anda menggunakan file
overrides.yaml
untuk organisasi dalam perintah hapus:- Pastikan bahwa konteks saat ini adalah konteks yang benar untuk cluster Kubernetes sumber:
kubectl config current-context
Jika perlu, setel konteks kubernetes ke cluster dan organisasi harus dinonaktifkan.
Cantumkan konteks Anda saat ini untuk melihat nama konteks untuk 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.
Helm
Ulangi langkah ini untuk setiap grup lingkungan:
helm -n apigee delete ENV_GROUP_NAME
apigeectl
$APIGEECTL_HOME/apigeectl delete --settings virtualhost -f OVERRIDES_FILE.yaml
- Menghapus lingkungan.
Helm
Ulangi langkah ini untuk setiap lingkungan:
helm -n apigee delete ENV_NAME
apigeectl
$APIGEECTL_HOME/apigeectl delete --all-envs -f OVERRIDES_FILE.yaml
- Hapus org Apigee.
Helm
helm -n apigee delete ORG_NAME
apigeectl
$APIGEECTL_HOME/apigeectl delete -f OVERRIDES_FILE.yaml --org
- 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 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 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 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 pada semua pod Cassandra di cluster Kubernetes sumber: - Pastikan bahwa 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 organisasi yang dimigrasikan, lakukan langkah berikut:
- Dapatkan nama organisasi dari file override.yaml org. Pastikan Anda memeriksa file override.yaml untuk organisasi yang sedang dimigrasikan.
- Jika nama organisasi berisi tanda hubung "-", ganti semua tanda hubung "-" dengan garis bawah "_".