Esegui automaticamente la migrazione da Container Registry ad Artifact Registry

Utilizza lo strumento di migrazione automatica per passare da Container Registry ai repository gcr.io ospitati su Artifact Registry o ai repository standard di Artifact Registry.

Lo strumento di migrazione automatica può eseguire le seguenti azioni in base al percorso di transizione scelto:

  • Crea repository gcr.io o repository standard in Artifact Registry per ciascuno dei progetti gcr.io elencati nella regione corrispondente.
  • Suggerisci un criterio IAM per ogni repository e applica il criterio o ignora l'applicazione a seconda delle preferenze dell'utente.
  • Reindirizza tutto il traffico dagli endpoint gcr.io ad Artifact Registry.
  • Copia tutte le immagini container archiviate in Container Registry nei tuoi repository gcr.io o in repository standard Artifact Registry, anche se hai già abilitato il reindirizzamento.

Prima di iniziare

  1. Installa Google Cloud CLI.
  2. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  3. Scegli un'opzione di transizione.
    • Se stai passando ai repository gcr.io ospitati su Artifact Registry, abilita l'API Artifact Registry nei progetti Container Registry di cui vuoi eseguire la migrazione. Lo strumento ti chiederà anche di abilitare l'API Artifact Registry se salti questo passaggio.

      Attiva l'API Artifact Registry.

      Abilita l'API

    • Se stai passando ai repository Artifact Registry standard, abilita l'API Artifact Registry nel progetto in cui vuoi eseguire la migrazione delle immagini container di Container Registry. Puoi utilizzare lo stesso progetto in cui è abilitato Container Registry o un progetto diverso.

      Attiva l'API Artifact Registry.

      Abilita l'API

Ruoli obbligatori

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

Ruoli richiesti dall'account di servizio Artifact Registry:

Per assicurarti che l'account di servizio Artifact Registry disponga delle autorizzazioni necessarie per copiare 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.

L'amministratore potrebbe anche essere in grado di concedere all'account di servizio Artifact Registry le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.

Ruoli necessari per generare suggerimenti IAM:

Per ottenere le autorizzazioni necessarie per analizzare un criterio di autorizzazione, chiedi all'amministratore di concederti i seguenti ruoli IAM per i progetti Container Registry di cui vuoi eseguire la migrazione:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per analizzare un criterio di autorizzazione. Per visualizzare esattamente le autorizzazioni necessarie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per analizzare un criterio di autorizzazione, sono necessarie le seguenti autorizzazioni:

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • Per analizzare i criteri con ruoli IAM personalizzati: iam.roles.get
  • Per utilizzare Google Cloud CLI per analizzare i criteri: serviceusage.services.use

Potresti anche riuscire a ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

I ruoli seguenti vengono concessi su risorse diverse a seconda dell'opzione di transizione.

Repository gcr.io

Per ottenere le autorizzazioni necessarie per la transizione ai repository gcr.io ospitati su Artifact Registry, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Crea repository Artifact Registry e concedi l'accesso a singoli repository: Amministratore Artifact Registry (roles/artifactregistry.admin) nel progetto Google Cloud che contiene le tue immagini Container Registry
  • Visualizza e gestisci la configurazione esistente di Container Registry applicata ai bucket di archiviazione di Cloud Storage: Storage Admin (roles/storage.admin) nel progetto Google Cloud che contiene le tue immagini di Container Registry

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

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

repository standard

Per ottenere le autorizzazioni necessarie per la transizione ai repository Artifact Registry standard, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Crea repository Artifact Registry e concedi l'accesso a singoli repository: Amministratore Artifact Registry (roles/artifactregistry.admin) nel progetto Google Cloud in cui è abilitata l'API Artifact Registry
  • Visualizza e gestisci la configurazione esistente di Container Registry applicata ai bucket di archiviazione di Cloud Storage: Storage Admin (roles/storage.admin) nel progetto Google Cloud che contiene le tue immagini di Container Registry

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

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

Esegui la migrazione ai repository gcr.io ospitati su Artifact Registry

Puoi eseguire la migrazione di uno o più progetti Google Cloud contemporaneamente utilizzando il comando gcloud artifacts docker upgrade migrate.

Per eseguire la migrazione ai repository gcr.io, esegui questo comando.

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS

Dove PROJECTS è l'ID di un singolo progetto di cui vuoi eseguire la migrazione in repository gcr.io ospitati su Artifact Registry o un elenco separato da virgole di ID progetto di cui vuoi eseguire la migrazione in repository gcr.io ospitati su Artifact Registry.

Lo strumento di migrazione completa i seguenti passaggi:

  • Crea repository gcr.io in Artifact Registry per ciascuno dei progetti gcr.io elencati nella regione corrispondente.
  • Suggerisce un criterio IAM per ogni repository e applica il criterio o ignora l'applicazione, a seconda delle preferenze dell'utente.
  • Reindirizza tutto il traffico dall'endpoint gcr.io ad Artifact Registry. Artifact Registry gestisce temporaneamente le immagini mancanti copiandole da Container Registry al momento della richiesta, fino a quando tutte le immagini container non vengono copiate in Artifact Registry.
  • Copia tutte le immagini container archiviate nei bucket gcr.io nei repository gcr.io appena creati e ospitati su Artifact Registry.
  • Disattiva la copia all'ora della richiesta. Il repository gcr.io ospitato su Artifact Registry non dipende più da Container Registry.

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

Se vuoi copiare un numero specifico di versione caricata di recente di ogni immagine, puoi includere il flag --last-uploaded-versions=VERSIONS. Sostituisci VERSIONS con il numero di versioni che vuoi copiare per ogni immagine. Se durante la copia vengono caricate nuove immagini, potrebbe essere copiato un numero di versioni superiore a quello specificato.

Il flag --recent-images e il flag --last-uploaded-versions si escludono a vicenda e non possono essere utilizzati insieme.

In caso di errori o timeout, puoi eseguire nuovamente il comando in tutta sicurezza e i passaggi completati verranno ignorati.

Esegui la migrazione ai repository Artifact Registry standard

  1. Per eseguire la migrazione del tuo progetto gcr.io in un repository 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 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 di Container Registry. Se l'ID progetto contiene i due punti (:), consulta Progetti con ambito dominio.

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

    • AR_REPOSITORY con il nome del tuo repository Artifact Registry.

Lo strumento di migrazione completa i seguenti passaggi:

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

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

In caso di errori o timeout, puoi eseguire nuovamente il comando in tutta sicurezza e i passaggi completati verranno ignorati.

Copia 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 immagini in Artifact Registry, puoi passare il flag --copy-only.

Per copiare immagini da Container Registry a un repository gcr.io ospitato su Artifact Registry, esegui questo comando:

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

Dove PROJECTS è l'ID di un singolo progetto di cui vuoi eseguire la migrazione in repository gcr.io ospitati su Artifact Registry o un elenco separato da virgole di ID progetto di cui vuoi eseguire la migrazione in repository gcr.io ospitati su Artifact Registry.

Lo strumento salta tutti i passaggi della migrazione e copia le immagini nei progetti specificati da Container Registry ai repository gcr.io ospitati su Artifact Registry.

Per copiare immagini da Container Registry in un repository Artifact Registry standard, 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 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 di Container Registry. Se l'ID progetto contiene i due punti (:), consulta Progetti con ambito dominio.

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

  • AR_REPOSITORY con il nome del tuo repository Artifact Registry.

Lo strumento salta tutti i passaggi della migrazione e copia le immagini dalla località e dal progetto specificati in Container Registry al tuo repository Artifact Registry.

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

Passaggi successivi