Memigrasikan secara otomatis dari Container Registry ke Artifact Registry

Dokumen ini menjelaskan langkah-langkah yang diperlukan untuk bertransisi dari repositori Container Registry ke repositori Artifact Registry pkg.dev.

Sebagian besar pengguna Container Registry harus bertransisi ke repositori gcr.io yang dihosting di Artifact Registry, bukan repositori pkg.dev, jadi hanya ikuti petunjuk ini jika Anda memahami perbedaan antara repositori gcr.io dan repositori pkg.dev di Artifact Registry.

Alat migrasi otomatis dapat melakukan tindakan berikut bergantung pada jalur transisi yang Anda pilih:

  • Buat repositori pkg.dev di Artifact Registry untuk project gcr.io Anda di region yang sesuai.
  • Menyarankan kebijakan IAM untuk repositori dan menerapkan kebijakan atau melewati penerapan, bergantung pada preferensi pengguna.
  • Salin semua image container yang disimpan di Container Registry ke repositori pkg.dev Artifact Registry Anda.

Sebelum memulai

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. Enable the Artifact Registry API.

    Enable the API


    Alat migrasi otomatis akan meminta Anda untuk mengaktifkan Artifact Registry API jika Anda melewati langkah ini.

Peran yang diperlukan

Peran berikut diperlukan untuk semua opsi transisi menggunakan alat migrasi otomatis.

Peran akun layanan:

Anda harus memberikan peran berikut ke akun layanan Artifact Registry untuk setiap project yang ingin dimigrasikan ke Artifact Registry.

Untuk memastikan bahwa akun layanan Artifact Registry memiliki izin yang diperlukan untuk menyalin image dari Container Registry ke Artifact Registry, minta administrator untuk memberikan akun layanan Artifact Registry peran IAM Storage Object Viewer (roles/storage.objectViewer) pada project Container Registry. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan Artifact Registry melalui peran khusus atau peran bawaan lainnya.

Peran pengguna:

Untuk mendapatkan izin yang diperlukan guna bertransisi ke repositori Artifact Registry pkg.dev, minta administrator untuk memberi Anda peran IAM Admin Migrasi Container Registry Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin) di organisasi atau project Google Cloud yang ingin Anda migrasikan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Bermigrasi ke repositori Artifact Registry pkg.dev

  1. Untuk memigrasikan project gcr.io ke repositori Artifact Registry pkg.dev, jalankan perintah berikut:

    gcloud artifacts docker upgrade migrate \
        --from-gcr=GCR_HOSTNAME/GCR_PROJECT \
        --to-pkg-dev=AR_PROJECT/AR_REPOSITORY
    

    Ganti kode berikut:

    • GCR_HOSTNAME dengan nama host Container Registry. Nama host bergantung pada tempat image container Anda disimpan:

      • gcr.io menghosting gambar di Amerika Serikat.
      • us.gcr.io menghosting gambar di Amerika Serikat, dalam bucket penyimpanan terpisah dari gambar yang dihosting oleh gcr.io.
      • eu.gcr.io menghosting gambar dalam negara anggota Uni Eropa.
      • asia.gcr.io menghosting gambar di Asia.
    • GCR_PROJECT dengan project ID Google Cloud Container Registry Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.

    • AR_PROJECT dengan project ID Google Cloud tempat Anda mengaktifkan Artifact Registry API.

    • AR_REPOSITORY dengan nama untuk repositori Artifact Registry Anda.

Alat migrasi menyelesaikan langkah-langkah berikut:

  • Membuat repositori Artifact Registry jika repositori belum ada.
  • Menyarankan kebijakan IAM untuk repositori, dan menerapkan kebijakan atau melewati penerapan, bergantung pada preferensi pengguna.
  • Menyalin image di region dan project Container Registry yang ditentukan ke repositori Artifact Registry Anda.

Jika hanya ingin menyalin gambar yang diambil dari Container Registry dalam 30 hingga 180 hari terakhir, Anda dapat menyertakan tanda --recent-images=DAYS. Ganti DAYS dengan jumlah hari, antara 30 dan 150, yang harus diperiksa alat untuk pull.

Jika mengalami error atau waktu tunggu habis, Anda dapat menjalankan kembali perintah dengan aman, dan langkah-langkah yang telah selesai akan dilewati.

Menyalin gambar

Alat migrasi otomatis menyalin image container saat Anda menjalankannya, tetapi jika Anda ingin melewati semua langkah migrasi otomatis lainnya, dan menggunakan alat untuk menyalin image ke Artifact Registry, Anda dapat meneruskan tanda --copy-only.

Untuk menyalin image dari Container Registry ke repositori Artifact Registry pkg.dev, jalankan perintah berikut:

gcloud artifacts docker upgrade migrate \
    --from-gcr=GCR_HOSTNAME/GCR_PROJECT \
    --to-pkg-dev=AR_PROJECT/AR_REPOSITORY \
    --copy-only

Ganti kode berikut:

  • GCR_HOSTNAME dengan nama host Container Registry. Nama host bergantung pada tempat image container Anda disimpan:

    • gcr.io menghosting gambar di Amerika Serikat.
    • us.gcr.io menghosting gambar di Amerika Serikat, dalam bucket penyimpanan terpisah dari gambar yang dihosting oleh gcr.io.
    • eu.gcr.io menghosting gambar dalam negara anggota Uni Eropa.
    • asia.gcr.io menghosting gambar di Asia.
  • GCR_PROJECT dengan project ID Google Cloud Container Registry Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.

  • AR_PROJECT dengan project ID Google Cloud tempat Anda mengaktifkan Artifact Registry API.

  • AR_REPOSITORY dengan nama untuk repositori Artifact Registry Anda.

Alat ini melewati semua langkah migrasi, dan menyalin image dari lokasi dan project yang ditentukan di Container Registry ke repositori Artifact Registry Anda.

Anda juga dapat menggunakan tanda --copy-only untuk memulai ulang penyalinan gambar jika terjadi error atau waktu tunggu habis selama proses.

Langkah selanjutnya