Bermigrasi secara otomatis dari Container Registry ke Artifact Registry

Gunakan alat migrasi otomatis untuk bertransisi dari Container Registry ke repositori gcr.io yang dihosting di Artifact Registry atau ke repositori Artifact Registry standar.

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

  • Buat repositori gcr.io atau repositori standar di Artifact Registry untuk setiap project gcr.io yang tercantum di region yang sesuai.
  • Sarankan kebijakan IAM untuk setiap repositori dan terapkan kebijakan atau lewati aplikasi bergantung pada preferensi pengguna.
  • Alihkan semua traffic dari endpoint gcr.io ke Artifact Registry.
  • Salin semua image container yang disimpan di Container Registry ke repositori gcr.io atau repositori standar Artifact Registry Anda, meskipun Anda telah mengaktifkan pengalihan.

Sebelum memulai

  1. Menginstal Google Cloud CLI.
  2. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  3. Pilih opsi transisi.
    • Jika Anda melakukan transisi ke repositori gcr.io yang dihosting di Artifact Registry, aktifkan Artifact Registry API di project Container Registry yang ingin Anda migrasikan. Alat ini juga akan meminta Anda mengaktifkan Artifact Registry API jika Anda melewati langkah ini.

      Enable the Artifact Registry API.

      Enable the API

    • Jika Anda melakukan transisi ke repositori Artifact Registry standar, aktifkan Artifact Registry API di project tujuan migrasi image container Container Registry. Anda dapat menggunakan project yang sama tempat Container Registry diaktifkan, atau project yang berbeda.

      Enable the Artifact Registry API.

      Enable the API

Peran yang diperlukan

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

Peran yang diperlukan oleh akun layanan Artifact Registry:

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

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

Peran yang diperlukan untuk membuat rekomendasi IAM:

Untuk mendapatkan izin yang Anda perlukan untuk menganalisis kebijakan izinkan, minta administrator Anda untuk memberi Anda peran IAM berikut di project Container Registry yang ingin dimigrasikan:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk menganalisis kebijakan izin. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk menganalisis kebijakan izinkan:

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • Untuk menganalisis kebijakan dengan peran IAM kustom: iam.roles.get
  • Untuk menggunakan Google Cloud CLI guna menganalisis kebijakan: serviceusage.services.use

Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.

Peran berikut diberikan di resource yang berbeda, bergantung pada opsi transisi Anda.

Repositori gcr.io

Untuk mendapatkan izin yang Anda perlukan untuk melakukan transisi ke repositori gcr.io yang dihosting di Artifact Registry, minta administrator untuk memberi Anda peran IAM berikut:

  • Buat repositori Artifact Registry dan berikan akses ke setiap repositori: Artifact Registry Administrator (roles/artifactregistry.admin) di project Google Cloud yang berisi image Container Registry Anda
  • Melihat dan mengelola konfigurasi Container Registry yang ada yang diterapkan ke bucket penyimpanan Cloud Storage: Storage Admin (roles/storage.admin) di project Google Cloud yang berisi image Container Registry Anda

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

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

repositori standar

Untuk mendapatkan izin yang Anda perlukan untuk melakukan transisi ke repositori Artifact Registry standar, minta administrator untuk memberi Anda peran IAM berikut:

  • Buat repositori Artifact Registry dan berikan akses ke repositori individual: Artifact Registry Administrator (roles/artifactregistry.admin) di project Google Cloud tempat Artifact Registry API diaktifkan
  • Melihat dan mengelola konfigurasi Container Registry yang ada yang diterapkan ke bucket penyimpanan Cloud Storage: Storage Admin (roles/storage.admin) di project Google Cloud yang berisi image Container Registry Anda

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

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

Melakukan migrasi ke repositori gcr.io yang dihosting di Artifact Registry

Anda dapat memigrasikan satu project Google Cloud, atau beberapa project Google Cloud sekaligus menggunakan perintah gcloud artifacts docker upgrade migrate.

Untuk bermigrasi ke repositori gcr.io, jalankan perintah berikut.

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS

PROJECTS adalah project ID dari satu project yang ingin Anda migrasikan ke repositori gcr.io yang dihosting di Artifact Registry, atau daftar project ID yang dipisahkan koma yang ingin Anda migrasikan ke repositori gcr.io yang dihosting di Artifact Registry.

Alat migrasi akan menyelesaikan langkah-langkah berikut:

  • Membuat repositori gcr.io di Artifact Registry untuk setiap project gcr.io yang tercantum di region yang sesuai.
  • Menyarankan kebijakan IAM untuk setiap repositori, dan menerapkan kebijakan atau melewati aplikasi, bergantung pada preferensi pengguna.
  • Mengalihkan semua traffic dari endpoint gcr.io ke Artifact Registry. Artifact Registry menyalurkan image yang tidak ada untuk sementara dengan menyalinnya dari Container Registry pada waktu permintaan hingga semua image container disalin ke Artifact Registry.
  • Menyalin semua image container yang tersimpan di bucket gcr.io ke repositori gcr.io yang baru dibuat dan dihosting di Artifact Registry.
  • Menonaktifkan penyalinan waktu permintaan. Repositori gcr.io yang dihosting di Artifact Registry tidak lagi bergantung pada Container Registry.

Jika Anda hanya ingin menyalin image yang diambil dari Container Registry dalam 30 hingga 90 hari terakhir, Anda dapat menyertakan flag --recent-images=DAYS. Ganti DAYS dengan jumlah hari, antara 30 dan 90, yang harus diperiksa oleh alat untuk menarik di dalamnya.

Jika ingin menyalin nomor tertentu dari versi setiap gambar yang baru diupload, Anda dapat menyertakan flag --last-uploaded-versions=VERSIONS. Ganti VERSIONS dengan jumlah versi yang ingin Anda salin untuk setiap gambar. Jika gambar baru diupload saat penyalinan, jumlah versi yang mungkin akan disalin melebihi jumlah yang ditentukan.

Flag --recent-images dan flag --last-uploaded-versions sama-sama bersifat eksklusif dan tidak dapat digunakan bersama.

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

Melakukan migrasi ke repositori Artifact Registry standar

  1. Untuk memigrasikan project gcr.io Anda ke repositori Artifact Registry, 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, di bucket penyimpanan terpisah dari gambar yang dihosting oleh gcr.io.
      • eu.gcr.io menghosting gambar di 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 ID project Google Cloud tempat Anda mengaktifkan Artifact Registry API.

    • AR_REPOSITORY dengan nama untuk repositori Artifact Registry Anda.

Alat migrasi akan menyelesaikan langkah-langkah berikut:

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

Jika Anda hanya ingin menyalin image yang diambil dari Container Registry dalam 30 hingga 90 hari terakhir, Anda dapat menyertakan flag --recent-images=DAYS. Ganti DAYS dengan jumlah hari, antara 30 dan 90, yang harus diperiksa oleh alat untuk menarik di dalamnya.

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

Salin gambar

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

Untuk menyalin image dari Container Registry ke repositori gcr.io yang dihosting di Artifact Registry, jalankan perintah berikut:

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS \
    --copy-only

PROJECTS adalah project ID dari satu project yang ingin Anda migrasikan ke repositori gcr.io yang dihosting di Artifact Registry, atau daftar project ID yang dipisahkan koma yang ingin Anda migrasikan ke repositori gcr.io yang dihosting di Artifact Registry.

Alat ini melewati semua langkah migrasi, dan menyalin image dalam project yang ditentukan dari Container Registry ke repositori gcr.io yang dihosting di Artifact Registry.

Untuk menyalin image dari Container Registry ke repositori Artifact Registry standar, 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, di bucket penyimpanan terpisah dari gambar yang dihosting oleh gcr.io.
    • eu.gcr.io menghosting gambar di 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 ID project 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 berlangsung.

Langkah selanjutnya