Memigrasikan resource Config Controller

Halaman ini menunjukkan cara memigrasikan resource Config Connector dari satu cluster Pengontrol Konfigurasi ke cluster lainnya. Anda mungkin perlu memigrasikan resource jika cluster Pengontrol Konfigurasi utama gagal dan perlu diganti, atau Anda perlu mengubah konfigurasi cluster yang tidak dapat diubah.

Halaman ini menggunakan terminologi berikut:

  • Cluster sumber: Cluster yang berisi resource Config Connector yang perlu Anda migrasikan.
  • Cluster tujuan: Cluster yang menjadi tujuan migrasi resource.

Rekomendasi

  • Sebelum membuat perubahan dalam produksi, selesaikan langkah-langkah ini di lingkungan pengujian.
  • Jika Anda perlu memigrasikan beberapa cluster Pengontrol Konfigurasi, migrasikan setiap cluster secara terpisah dimulai dengan cluster yang paling tidak kritis.
  • Jika cluster Config Sync disinkronkan dari lebih dari satu sumber tepercaya, migrasikan semua resource dari setiap sumber sekaligus.

Langkah-langkah migrasi untuk berbagai skenario

Migrasikan semua resource

Untuk memigrasikan semua resource, selesaikan langkah-langkah berikut:

  1. Buat cluster tujuan.

  2. Berhenti mengirim perubahan ke sumber tepercaya tempat cluster sumber dikonfigurasi untuk melakukan sinkronisasi. Config Sync akan terus disinkronkan dari sumber tepercaya. Hanya perubahan yang disinkronkan oleh cluster sumber yang boleh dihentikan.

  3. Pastikan setiap perubahan terbaru pada sumber tepercaya telah disinkronkan di cluster dan semua resource sudah diupdate di cluster sumber.

    Jika ada error untuk beberapa resource, Anda mungkin perlu menganalisis resource satu per satu. Jika belum dibuat karena suatu error, resource akan dibuat menggunakan Config Connector yang berjalan di cluster tujuan. Error ini biasanya dapat diabaikan. Namun, untuk sebagian besar error, akar masalah harus ditemukan dan diperbaiki sebelum mencoba migrasi.

  4. Siapkan Config Sync di cluster tujuan untuk membaca dari sumber tepercaya yang sama dengan yang digunakan untuk mengonfigurasi cluster sumber. Jika beberapa sinkronisasi disiapkan untuk menyinkronkan dari lebih dari satu sumber tepercaya, lakukan ini untuk setiap sinkronisasi.

  5. Gunakan perintah nomos status untuk memastikan bahwa cluster tujuan telah menyinkronkan semua resource dari sumber tepercaya.

  6. Setelah resource disinkronkan, hapus RootSync atau RepoSync dari cluster sumber.

  7. Setelah setiap sumber tepercaya dimigrasikan, hapus cluster Pengontrol Konfigurasi sumber.

Memigrasikan beberapa resource

Untuk memigrasikan beberapa resource, selesaikan langkah-langkah berikut:

  1. Selesaikan langkah 1-6 dari bagian Memigrasikan semua resource sebelumnya.

  2. Anotasikan resource yang harus dimigrasikan ke cluster tujuan dengan anotasi cnrm.cloud.google.com/deletion-policy: abandon. Anotasi ini mencegah Config Connector menghapus resource yang mendasarinya saat resource Config Connector dihapus dari cluster Pengontrol Konfigurasi.

  3. Hapus resource yang telah ditandai sebagai diabaikan dari cluster sumber. Penghapusan ini hanya berfungsi jika resource ini juga dihapus dari sumber tepercaya sebelum melanjutkan Config Sync.

  4. Pindahkan resource ini ke sumber tepercaya lain atau folder lain dalam sumber tepercaya yang sama.

  5. Siapkan cluster tujuan untuk disinkronkan dari lokasi tempat Anda memindahkan resource. Cluster tujuan kini dapat memperoleh resource ini dan mulai mengelolanya.

Memigrasikan resource individual

Jika cluster Pengontrol Konfigurasi tidak dapat dihapus (misalnya, ketika hanya memigrasikan subset resource ke cluster lain), Anda dapat menghapus resource individual. Untuk menghapus resource satu per satu, nonaktifkan Config Sync, lalu tetapkan anotasi cnrm.cloud.google.com/deletion-policy: abandon pada setiap resource yang perlu Anda hapus.

Memigrasikan resource yang memiliki layanan yang dihasilkan resourceID

Untuk resource yang kolom resourceID belum disediakan secara eksplisit, resourceID tidak perlu ditentukan untuk akuisisi resource oleh instance Config Connector lain. Namun, ada resource yang memiliki ID resource yang dihasilkan layanan yang memerlukan langkah tambahan. Meskipun resourceID dihasilkan layanan, layanan tersebut harus disediakan untuk memperoleh resource ini dari instance Config Connector lain. Untuk resource ini, resourceID harus ditambahkan ke sumber kebenaran sebelum mencoba mendapatkan resource dari cluster tujuan.

Memigrasikan resource menggunakan kebijakan pencegahan konflik

Secara default, kebijakan pencegahan konflik dinonaktifkan untuk resource. Anda dapat mengaktifkannya pada resource dengan menyetel anotasi berikut:

cnrm.cloud.google.com/management-conflict-prevention-policy: "resource"

Setelah ditetapkan, Config Connector harus memperoleh lease pada resource yang mendasarinya sebelum melakukan perubahan pada resource tersebut. Artinya, cluster tujuan tidak dapat mendapatkan lease secara langsung karena lease dipegang oleh Config Connector di cluster sumber. Sewa diberikan selama 40 menit. Namun, setelah 20 menit, Config Connector secara proaktif akan mencoba memperpanjang lease. Karena perilaku ini, jika Config Connector di cluster sumber responsif dan berjalan, cluster tujuan tidak dapat memperoleh lease. Cluster sumber harus melepaskan lease-nya sebelum cluster tujuan dapat memperolehnya. Hal ini dapat dilakukan dengan menghapus cluster sumber, atau dengan menghapus resource di cluster sumber.

Setelah cluster sumber melepaskan lease, cluster tujuan dapat memperoleh lease. Cluster tujuan dapat memperoleh lease setelah maksimal 40 menit, dan dapat mulai mengelola resource. Tidak ada perubahan yang perlu dilakukan pada resource Config Connector hingga lease telah diperoleh dari cluster tujuan.

Langkah selanjutnya