Memigrasikan satu organisasi ke cluster lain

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:

  1. Jika belum diaktifkan, aktifkan pencadangan di cluster Kubernetes yang berisi organisasi hybrid untuk dimigrasikan. Lihat Ringkasan pencadangan Cassandra untuk 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 Pemantauan cadangan untuk memverifikasi bahwa pencadangan telah berhasil diselesaikan:
    • "Memeriksa status tugas pencadangan"
    • "Periksa log cadangan"
  4. 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.
  5. 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 .

  6. 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.
  7. 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:
    1. Pastikan konteks saat ini adalah konteks yang benar untuk cluster Kubernetes tujuan:
      kubectl config current-context
    2. Eksekusi 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 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.

    4. Keluar dari pod apigee-cassandra-default-0.
    5. Membuat pod klien debug Cassandra menggunakan petunjuk dalam Buat penampung klien untuk proses debug. Lanjutkan ke langkah berikutnya setelah mendapatkan Dialog cqlsh.
    6. 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>
    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  -- /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 {} +
    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 org dalam perintah hapus:
    1. 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           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 delete ENV_GROUP_NAME
      
    3. Hapus lingkungan. Ulangi langkah ini untuk setiap lingkungan:
      helm -n apigee delete ENV_NAME
      
    4. Hapus organisasi Apigee.
      helm -n apigee delete ORG_NAME
      
    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 cara menemukan <migrated org name>.

      Salin daftar semua nama yang ditampilkan di output. Anda akan membutuhkan daftar ini pada langkah 9. j.

    7. Keluar dari pod apigee-cassandra-default-0.
    8. Membuat pod klien debug Cassandra menggunakan petunjuk dalam Buat 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 di 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 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 override.yaml organisasi. Pastikan untuk memeriksa penggantian.yaml untuk organisasi yang dimigrasikan.
  2. Jika nama organisasi berisi tanda hubung "-", ganti semua tanda hubung "-" dengan garis bawah "_".