Memigrasikan organisasi ke cluster lain

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:

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

  3. 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"
  4. Setelah memverifikasi bahwa pencadangan berhasil, catat nomor ID di akhir log pencadangan. Misalnya, log pencadangan yang berhasil akan 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> adalah nama cluster Kubernetes tujuan.

  6. 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.
  7. 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:
    1. Pastikan konteks saat ini adalah konteks yang benar untuk cluster Kubernetes tujuan:
      kubectl config current-context
    2. Jalankan ke pod apigee-cassandra-default-0:
      kubectl exec -it -n APIGEE_NAMESPACE 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 akan 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 prompt cqlsh.
    6. 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>
    7. Keluar dari pod klien debug Cassandra.
    8. 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 {} +
    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 untuk menggunakan file overrides.yaml untuk organisasi dalam perintah penghapusan:
    1. 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           apigee
      
          kubectl config use-context gke_example-org-1_us-west1_example-cluster-2
    2. Hapus virtualhost. Ulangi langkah ini untuk setiap grup lingkungan:
      helm -n APIGEE_NAMESPACE delete ENV_GROUP_NAME
      
    3. Hapus lingkungan. Ulangi langkah ini untuk setiap lingkungan:
      helm -n APIGEE_NAMESPACE delete ENV_NAME
      
    4. Hapus organisasi Apigee.
      helm -n APIGEE_NAMESPACE delete ORG_NAME
      
    5. Jalankan ke pod apigee-cassandra-default-0:
      kubectl exec -it -n APIGEE_NAMESPACE 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 dalam output. Anda akan memerlukan 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 di 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 di semua pod Cassandra di cluster Kubernetes sumber:
      • 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 {} +
    13. Keluar dari pod Cassandra.

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:

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