Eseguire la migrazione automatica da Container Registry ad Artifact Registry

Questo documento descrive i passaggi necessari per la transizione da Container Registry ai repository pkg.dev Artifact Registry.

La maggior parte degli utenti di Container Registry deve eseguire la transizione ai repository gcr.io ospitati su Artifact Registry, non ai repository pkg.dev, quindi segui queste istruzioni solo se comprendi la differenza tra i repository gcr.io e i repository pkg.dev in Artifact Registry.

Lo strumento di migrazione automatica può eseguire le seguenti azioni a seconda del percorso di transizione che scegli:

  • Crea un repository pkg.dev in Artifact Registry per il tuo progetto gcr.io nella regione corrispondente.
  • Suggerisci un criterio IAM per il repository e applicalo o salta l'applicazione a seconda delle preferenze dell'utente.
  • Copia tutte le immagini container archiviate in Container Registry nel repository Artifact Registry pkg.dev.

Prima di iniziare

  1. Install the Google Cloud CLI.

  2. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  3. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  4. Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API


    Se ignori questo passaggio, lo strumento di migrazione automatica ti chiede di abilitare l'API Artifact Registry.

Ruoli obbligatori

I seguenti ruoli sono obbligatori per tutte le opzioni di transizione che utilizzano lo strumento di migrazione automatica.

Ruoli del service account:

Devi concedere i seguenti ruoli all'account di servizio Artifact Registry per ogni progetto che vuoi migrare ad Artifact Registry.

Per assicurarti che il account di servizio Artifact Registry disponga delle autorizzazioni necessarie per copiare le immagini da Container Registry ad Artifact Registry, chiedi all'amministratore di concedere al account di servizio Artifact Registry il ruolo IAM Storage Object Viewer (roles/storage.objectViewer) sul progetto Container Registry.

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

L'amministratore potrebbe anche assegnare al account di servizio Artifact Registry le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.

Ruoli utente:

Per ottenere le autorizzazioni necessarie per eseguire la transizione ai repository pkg.dev Artifact Registry, chiedi all'amministratore di concederti il ruolo IAM Artifact Registry Container Registry Migration Admin (roles/artifactregistry.containerRegistryMigrationAdmin) nell'organizzazione o nel progetto di cui vuoi eseguire la migrazione. Google Cloud Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Esegui la migrazione ai repository di pkg.dev Artifact Registry

  1. Per eseguire la migrazione del progetto gcr.io a un repository pkg.dev Artifact Registry, esegui questo comando:

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

    Sostituisci quanto segue:

    • GCR_HOSTNAME con il nome host di Container Registry. Il nome host dipende da dove sono archiviate le immagini container:

      • gcr.io ospita le immagini negli Stati Uniti.
      • us.gcr.io ospita le immagini negli Stati Uniti, in un bucket di archiviazione separato rispetto alle immagini ospitate da gcr.io.
      • eu.gcr.io ospita le immagini all'interno degli stati membri dell'Unione Europea.
      • asia.gcr.io ospita le immagini in Asia.
    • GCR_PROJECT con l'ID progetto di Container Registry Google Cloud. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.

    • AR_PROJECT con l'ID progetto Google Cloud in cui hai abilitato l'API Artifact Registry.

    • AR_REPOSITORY con il nome del repository Artifact Registry.

Lo strumento di migrazione completa i seguenti passaggi:

  • Crea il repository Artifact Registry se non esiste già.
  • Suggerisce un criterio IAM per il repository e applica il criterio o ne salta l'applicazione a seconda delle preferenze dell'utente.
  • Copia le immagini nella regione e nel progetto Container Registry specificati nel repository Artifact Registry.

Se vuoi copiare solo le immagini estratte da Container Registry negli ultimi 30-180 giorni, puoi includere il flag --recent-images=DAYS. Sostituisci DAYS con il numero di giorni, compreso tra 30 e 150, entro i quali lo strumento deve verificare la presenza di pull.

Se si verificano errori o timeout, puoi eseguire di nuovo il comando in tutta sicurezza e i passaggi completati vengono ignorati.

Copiare le immagini

Lo strumento di migrazione copia automaticamente le immagini container quando lo esegui, ma se vuoi saltare tutti gli altri passaggi della migrazione automatica e utilizzare lo strumento per copiare le immagini in Artifact Registry, puoi passare il flag --copy-only.

Per copiare le immagini da Container Registry a un repository pkg.dev Artifact Registry, esegui questo comando:

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

Sostituisci quanto segue:

  • GCR_HOSTNAME con il nome host di Container Registry. Il nome host dipende da dove sono archiviate le immagini container:

    • gcr.io ospita le immagini negli Stati Uniti.
    • us.gcr.io ospita le immagini negli Stati Uniti, in un bucket di archiviazione separato rispetto alle immagini ospitate da gcr.io.
    • eu.gcr.io ospita le immagini all'interno degli stati membri dell'Unione Europea.
    • asia.gcr.io ospita le immagini in Asia.
  • GCR_PROJECT con l'ID progetto di Container Registry Google Cloud. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.

  • AR_PROJECT con l'ID progetto Google Cloud in cui hai abilitato l'API Artifact Registry.

  • AR_REPOSITORY con il nome del repository Artifact Registry.

Lo strumento salta tutti i passaggi di migrazione e copia le immagini dalla posizione e dal progetto specificati in Container Registry al repository Artifact Registry.

Puoi anche utilizzare il flag --copy-only per riavviare la copia delle immagini se si verifica un errore o un timeout durante la procedura.

Passaggi successivi