Memigrasikan satu organisasi ke cluster lain

Halaman ini menjelaskan cara memigrasikan organisasi hybrid Apigee dari satu cluster Kubernetes ke cluster lain. Beberapa kasus saat Anda mungkin perlu memigrasikan sebuah organisasi ke cluster lain adalah sebagai berikut:

  • Pusat data yang menghosting cluster yang ada tidak memiliki kapasitas lagi, atau sedang dinonaktifkan.
  • 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 cluster terpisah.

Perlu diketahui bahwa ada risiko dan batasan saat memigrasikan sebuah organisasi ke cluster hybrid lainnya. 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 campuran, 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. Migrasi ke cluster dengan deployment hybrid yang ada tidak didukung.
  • Organisasi yang dimigrasikan hanya dapat dipindahkan ke cluster baru dengan deployment region tunggal. Setelah deployment region tunggal aktif dan berjalan, Anda dapat mengikuti proses perluasan region, yang dijelaskan dalam Deployment multi-region, untuk memperluasnya ke region lain.
  • Cluster Cassandra harus beroperasi dengan kondisi baik di semua wilayah.

Memigrasikan organisasi

Ikuti petunjuk di bawah ini untuk memigrasikan organisasi hybrid dari satu cluster Kubernetes ke cluster lainnya:

  1. 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.
  2. 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.

  3. 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"
  4. Setelah memastikan 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 angka multi-digit di akhir baris. Anda akan memerlukan nomor ini nanti.
  5. Alihkan konteks Kubernetes ke cluster Kubernetes tujuan:
    kubectl config use-context <destination cluster name> # <destination cluster name>

    dengan <destination cluster name> sebagai nama cluster Kubernetes tujuan.

  6. Pulihkan data cadangan ke cluster Kubernetes tujuan menggunakan petunjuk dalam artikel Memulihkan dalam satu region.
    • Gunakan file penggantian.yaml untuk organisasi yang sedang dimigrasikan ke deployment hybrid tujuan.
    • Jangan lupa menetapkan nilai restore:snapshotTimestamp ke angka multi-digit yang ditunjukkan oleh log cadangan di langkah 4. Lihat Memulihkan di satu region.
  7. 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 yang mungkin tidak ingin Anda migrasikan. Setelah deployment hybrid tujuan dipulihkan, Anda perlu menghapus semua data organisasi tambahan yang disalin ke deployment, menggunakan langkah-langkah berikut:
    1. Pastikan konteks saat ini adalah konteks yang benar untuk cluster Kubernetes tujuan:
      kubectl config current-context
    2. Mengeksekusi ke pod apigee-cassandra-default-0:
      kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
    3. 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 memerlukan daftar ini di langkah 7. f.

    4. Keluar dari pod apigee-cassandra-default-0.
    5. Buat pod klien debug Cassandra menggunakan petunjuk dalam Membuat penampung klien untuk proses debug. Lanjutkan ke langkah berikutnya setelah mendapatkan perintah cqlsh.
    6. Jalankan perintah berikut pada 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>
    7. Keluar dari pod klien debug Cassandra.
    8. 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 {} +
    9. Keluar dari pod Cassandra.
  8. Alihkan konteks Kubernetes ke cluster Kubernetes sumber:
    kubectl config use-context <source cluster name>

    dengan <source cluster name> adalah nama cluster Kubernetes sumber.

  9. Hapus organisasi yang dimigrasikan dari cluster Kubernetes sumber. Pastikan Anda menggunakan file overrides.yaml untuk organisasi dalam perintah hapus:
    1. Verifikasi bahwa konteks saat ini adalah konteks yang benar untuk cluster Kubernetes sumber:
      kubectl config current-context
    2. apigeectl delete --settings virtualhost -f 
    3. apigeectl delete --all-envs -f <overrides.yaml>
    4. apigeectl delete -f <overrides.yaml> --org
    5. Jalankan ke pod apigee-cassandra-default-0:
      kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
    6. 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 di output. Anda akan membutuhkan daftar ini di langkah 9. j.

    7. Keluar dari pod apigee-cassandra-default-0.
    8. Buat pod klien debug Cassandra menggunakan petunjuk dalam Membuat penampung klien untuk proses debug. Lanjutkan ke langkah berikutnya setelah mendapatkan perintah cqlsh.
    9. Jalankan perintah berikut pada prompt cqlsh:
      desc keyspaces;

      Pastikan perintah ini tidak menampilkan error.

    10. Untuk setiap nama dalam daftar yang dibuat di langkah 10. f., jalankan perintah berikut:
      drop keyspace <name>;
    11. Keluar dari pod klien debug Cassandra.
    12. Setelah menjalankan perintah cqlsh, jalankan perintah berikut pada semua pod Cassandra di cluster Kubernetes sumber:
      • 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 {} +
    13. Keluar dari pod Cassandra.

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:

  1. Dapatkan nama organisasi dari file penggantian.yaml org. Pastikan Anda memeriksa file override.yaml untuk organisasi yang sedang dimigrasikan.
  2. Jika nama organisasi berisi tanda hubung "-", ganti semua tanda hubung "-" dengan garis bawah "_".