Halaman ini menjelaskan cara memigrasikan organisasi campuran Apigee dari satu cluster Kubernetes ke cluster Kubernetes lainnya. Beberapa kasus saat Anda mungkin perlu 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-organisasi ke cluster terpisah.
Perhatikan bahwa ada risiko dan batasan saat memigrasikan organisasi ke cluster campuran lain. Baca detail di bagian Batasan sebelum melakukan migrasi.
Batasan
Batasan berikut berlaku saat memigrasikan organisasi campuran 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 campuran, sebelum memigrasikan organisasi.
- Ukuran data maksimum yang didukung untuk migrasi organisasi adalah 5 GB di semua ruang kunci organisasi, tidak termasuk cache dan kuota.
- Data cache tidak akan dimigrasikan. Hybrid membuat 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 yang ada. Memigrasikan ke cluster dengan deployment campuran yang ada tidak didukung.
- Organisasi yang dimigrasikan hanya dapat dipindahkan ke cluster baru dengan satu deployment region. Setelah deployment satu region aktif dan 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 campuran dari satu cluster Kubernetes ke cluster lainnya:
- Jika belum diaktifkan, aktifkan pencadangan di cluster Kubernetes yang berisi organisasi hibrida yang akan dimigrasikan. Lihat Ringkasan pencadangan Cassandra untuk mengetahui informasi tentang pencadangan campuran.
- Mulai tugas pencadangan campuran menggunakan perintah berikut:
kubectl create job -n APIGEE_NAMESPACE --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 tentang
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 akan berisi baris seperti berikut:
Catat angka 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.
- Jangan lupa untuk menetapkan nilai
restore:snapshotTimestamp
ke angka berbilang digit yang ditampilkan oleh log cadangan di langkah 4. Lihat Memulihkan di satu region.
- Setelah pemulihan selesai, hapus data organisasi apa pun, selain data untuk organisasi yang
dimigrasikan, dari cluster Kubernetes tujuan. File cadangan campuran berisi data untuk semua organisasi, termasuk organisasi yang mungkin tidak ingin Anda migrasikan. Setelah deployment hybrid 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 ke pod
apigee-cassandra-default-0
:kubectl exec -it -n APIGEE_NAMESPACE 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 memerlukan daftar ini di langkah 7. f.
- Keluar dari pod
apigee-cassandra-default-0
. - Buat pod klien debug Cassandra menggunakan petunjuk dalam
Membuat penampung klien untuk proses debug. Lanjutkan ke langkah berikutnya setelah mendapatkan prompt
cqlsh
. - Jalankan perintah berikut di prompt
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_NAMESPACE
-- /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.
- 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 organisasi dalam perintah penghapusan:- Pastikan konteks saat ini adalah konteks yang benar untuk cluster Kubernetes sumber:
kubectl config current-context
Jika perlu, tetapkan konteks kubernetes ke cluster dan organisasi yang perlu 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. Ulangi langkah ini untuk setiap grup lingkungan:
helm -n APIGEE_NAMESPACE delete ENV_GROUP_NAME
- Hapus lingkungan. Ulangi langkah ini untuk setiap lingkungan:
helm -n APIGEE_NAMESPACE delete ENV_NAME
- Hapus organisasi Apigee.
helm -n APIGEE_NAMESPACE delete ORG_NAME
- Jalankan ke pod apigee-cassandra-default-0:
kubectl exec -it -n APIGEE_NAMESPACE 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 dalam
Membuat penampung 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_NAMESPACE 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 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 organisasi yang dimigrasikan, lakukan langkah-langkah berikut:
- Dapatkan nama organisasi dari file overrides.yaml organisasi. Pastikan untuk memeriksa file overrides.yaml untuk organisasi yang dimigrasikan.
- Jika nama organisasi berisi tanda hubung "-", ganti semua tanda hubung "-" dengan garis bawah "_".