Esegui automaticamente la migrazione da Container Registry ad Artifact Registry

Usa lo strumento di migrazione automatica per passare da Container Registry a Repository gcr.io ospitati su Artifact Registry o in Artifact Registry standard repository.

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

  • Crea repository gcr.io o standard in Artifact Registry per ciascuno dei tuoi progetti gcr.io elencati nella regione corrispondente.
  • Suggerisci un criterio IAM per ogni repository e applica o ignorare l'applicazione, a seconda delle preferenze dell'utente.
  • Reindirizza tutto il traffico dagli endpoint gcr.io ad Artifact Registry.
  • Copia in Artifact Registry tutte le immagini container archiviate in Container Registry repository gcr.io o 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 a repository gcr.io ospitati su Artifact Registry, abilitare l'API Artifact Registry nei progetti Container Registry che 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 di cui vuoi eseguire la migrazione dalle immagini container di Container Registry. Puoi usare lo stesso progetto in cui Container Registry è abilitato 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 i ruoli di migrazione.

Ruoli richiesti dall'account di servizio Artifact Registry:

per assicurarti che l'account di servizio Artifact Registry disponga delle risorse necessarie autorizzazioni per copiare immagini da Container Registry ad Artifact Registry, chiedi all'amministratore di concedere all'account di servizio Artifact Registry 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 fornire l'account di servizio Artifact Registry le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.

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 nei progetti Container Registry di cui vuoi eseguire la migrazione:

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

Questi ruoli predefiniti le autorizzazioni necessarie per analizzare un criterio di autorizzazione. Per vedere le autorizzazioni esatte obbligatorie, 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 i 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 ruoli personalizzati altri ruoli predefiniti.

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

Repository gcr.io

Per ottenere le autorizzazioni di cui hai bisogno per la transizione ai repository gcr.io ospitati su Artifact Registry, chiedi all'amministratore di concederti 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 immagini di 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 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 la ruoli o altri ruoli predefiniti ruoli.

repository standard

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

  • Crea repository Artifact Registry e concedi l'accesso a singoli repository: Amministratore 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: Storage Admin (roles/storage.admin) nel progetto Google Cloud che contiene le 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 la ruoli o altri ruoli predefiniti ruoli.

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

Puoi eseguire la migrazione di uno o più progetti Google Cloud contemporaneamente utilizzando l'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 che vuoi eseguire la migrazione in repository gcr.io ospitati su Artifact Registry o utilizzando una virgola elenco di ID progetto di cui vuoi eseguire la migrazione nei repository gcr.io ospitati Artifact Registry.

Lo strumento di migrazione completa i seguenti passaggi:

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

Se vuoi copiare solo le immagini di cui è stato eseguito il pull 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 l' dovrebbe verificare la presenza di pull al suo interno.

Se vuoi copiare un numero specifico della versione caricata di recente di ogni immagine, puoi includere l'elemento --last-uploaded-versions=VERSIONS flag. Sostituisci VERSIONS con il numero di versioni da copiare per ogni immagine. Se durante la copia vengono caricate nuove immagini, il numero di di versioni specificate potrebbero essere copiate.

Il flag --recent-images e il flag --last-uploaded-versions sono reciprocamente esclusivi e non possono essere utilizzati insieme.

In caso di errori o timeout, puoi eseguire nuovamente il comando in tutta sicurezza. i passaggi completati vengono 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 .

    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 ambiente bucket di archiviazione dalle immagini ospitate da gcr.io.
      • eu.gcr.io ospita le immagini all'interno stati membri dell'Unione Europea.
      • asia.gcr.io ospita le immagini in Asia.
    • GCR_PROJECT con il tuo Google Cloud di Container Registry ID progetto. 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 non lo è già esistono.
  • Suggerisce un criterio IAM per il repository e applica o di saltare l'applicazione, a seconda delle preferenze dell'utente.
  • Copia le immagini nella regione di Container Registry specificata e nel repository Artifact Registry.

Se vuoi copiare solo le immagini di cui è stato eseguito il pull 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 l' dovrebbe verificare la presenza di pull al suo interno.

In caso di errori o timeout, puoi eseguire nuovamente il comando in tutta sicurezza. i passaggi completati vengono 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 per copiare immagini in Artifact Registry, puoi passare il token --copy-only flag.

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 che vuoi eseguire la migrazione in repository gcr.io ospitati su Artifact Registry o utilizzando una virgola elenco di ID progetto di cui vuoi eseguire la migrazione nei repository gcr.io ospitati Artifact Registry.

Lo strumento ignora tutti i passaggi della migrazione e copia le immagini nell'oggetto di progetti da Container Registry a repository gcr.io ospitati su Artifact Registry.

Per copiare 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 ambiente bucket di archiviazione dalle immagini ospitate da gcr.io.
    • eu.gcr.io ospita le immagini all'interno stati membri dell'Unione Europea.
    • asia.gcr.io ospita le immagini in Asia.
  • GCR_PROJECT con il tuo Google Cloud di Container Registry ID progetto. 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 posizione e progetto di Container Registry nel repository Artifact Registry.

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

Passaggi successivi