Migrazione automatica da Container Registry ad Artifact Registry

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

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

  • Crea repository gcr.io o repository standard in Artifact Registry per ciascuno dei tuoi progetti gcr.io elencati nella regione corrispondente.
  • Suggerisci un criterio IAM per ogni repository e applica il criterio o ignora l'applicazione in base alle 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 Artifact Registry gcr.io o nei repository standard, 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. Se salti questo passaggio, lo strumento ti chiederà anche di abilitare l'API Artifact Registry.

      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 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.

L'amministratore potrebbe anche essere in grado di concedere all'account di servizio Artifact Registry le autorizzazioni richieste tramite i 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 sui 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 le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:

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 essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

I seguenti ruoli 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 ruoli IAM seguenti:

  • Crea repository Artifact Registry e concedi l'accesso a singoli repository: Amministratore di Artifact Registry (roles/artifactregistry.admin) sul progetto Google Cloud che contiene le tue immagini di Container Registry
  • Visualizza e gestisci la configurazione esistente di Container Registry applicata ai bucket di archiviazione di Cloud Storage: Amministratore Storage (roles/storage.admin) sul 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 essere in grado di 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 di Artifact Registry (roles/artifactregistry.admin) sul 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: Amministratore Storage (roles/storage.admin) sul 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 essere in grado di 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 un singolo progetto Google Cloud o di 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 ai repository gcr.io ospitati su Artifact Registry, oppure un elenco separato da virgole di ID progetto di cui vuoi eseguire la migrazione nei 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 tuoi 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 tuoi bucket gcr.io nei repository gcr.io appena creati ospitati su Artifact Registry.
  • Disabilita la copia al momento della richiesta. Il repository gcr.io ospitato su Artifact Registry non dipende più da Container Registry.

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

Se vuoi copiare un numero specifico di versioni caricate 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, il numero di versioni specificato potrebbe essere superiore a quello specificato.

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

Se si verificano errori o timeout, puoi eseguire nuovamente il comando in sicurezza e i passaggi completati verranno ignorati.

Esegui la migrazione ai repository Artifact Registry standard

  1. Per eseguire la migrazione del 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 dalle 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 di 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 tuo repository Artifact Registry.

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

Se si verificano errori o timeout, puoi eseguire nuovamente il comando in sicurezza e i passaggi completati verranno ignorati.

Copia immagini

Lo strumento di migrazione copia automaticamente le immagini container quando le 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 in 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 ai repository gcr.io ospitati su Artifact Registry, oppure un elenco separato da virgole di ID progetto di cui vuoi eseguire la migrazione nei repository gcr.io ospitati su Artifact Registry.

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

Per copiare le immagini da Container Registry a 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 dalle 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 di 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 ignora tutti i passaggi della migrazione e copia le immagini dalla località 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 in caso di errore o timeout durante il processo.

Passaggi successivi