Eseguire la migrazione automatica da Container Registry ad Artifact Registry

Questo documento descrive i passaggi necessari per eseguire 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 conosci 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 scelto:

  • Crea un repository pkg.dev in Artifact Registry per il tuo progetto gcr.io nella regione corrispondente.
  • Suggerire un criterio IAM per il repository e applicarlo o saltare l'applicazione in base alle preferenze dell'utente.
  • Copia tutte le immagini container archiviate in Container Registry nel tuo repository Artifact Registrypkg.dev.

Prima di iniziare

  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


    Lo strumento di migrazione automatica ti chiede di abilitare l'API Artifact Registry se salti questo passaggio.

Ruoli obbligatori

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

Ruoli dell'account di servizio:

Devi concedere i seguenti ruoli all'account di servizio Artifact Registry per ogni progetto di cui vuoi eseguire la migrazione ad Artifact Registry.

Per assicurarti che l'account di servizio Artifact Registry disponga delle autorizzazioni necessarie per copiare le immagini da Container Registry ad Artifact Registry, chiedi all'amministratore di concedere all'account di servizio Artifact Registry il ruolo IAM Visualizzatore oggetti Storage (roles/storage.objectViewer) nel progetto Container Registry. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

L'amministratore potrebbe anche essere in grado di assegnare all'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 Amministratore di migrazione del registry dei contenitori di Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin) nell'organizzazione o nel progetto Google Cloud di cui vuoi eseguire la migrazione. Per saperne di più sulla concessione dei ruoli, consulta Gestire 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 pkg.dev Artifact Registry

  1. Per eseguire la migrazione del progetto gcr.io a un repository pkg.dev Artifact Registry, esegui il seguente 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 distinto da quello delle 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 il tuo ID progetto Google Cloud Container Registry. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.

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

    • AR_REPOSITORY con il nome del repository di 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 lo applica o ne salta l'applicazione in base alle 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.devArtifact Registry, esegui il seguente 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 distinto da quello delle 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 il tuo ID progetto Google Cloud Container Registry. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.

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

  • AR_REPOSITORY con il nome del repository di Artifact Registry.

Lo strumento salta tutti i passaggi di migrazione e copia le immagini dalla posizione e dal progetto specificati in Container Registry al tuo 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