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.
La migrazione in Artifact Registry gcr.io
repository può essere eseguita
Endpoint di Container Registry che ricevono traffico senza tempi di inattività
e un'interruzione del servizio.
Lo strumento di migrazione automatica può eseguire le azioni seguenti a seconda il 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 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
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Scegli un'opzione di transizione.
- Se stai eseguendo la transizione ai repository gcr.io ospitati su Artifact Registry,
attiva l'API Artifact Registry nei progetti Container Registry di cui vuoi eseguire la migrazione. Lo strumento ti chiederà anche di attivare l'API Artifact Registry se scorri questo passaggio.
Enable the Artifact Registry API.
- Se stai eseguendo la transizione ai repository Artifact Registry standard, abilita
l'API Artifact Registry nel progetto in cui vuoi eseguire la migrazione delle tue
immagini container di Container Registry. Puoi usare lo stesso progetto in cui
Container Registry è abilitato o è un progetto diverso.
Enable the Artifact Registry API.
Ruoli obbligatori
I seguenti ruoli 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 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 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:
-
Cloud Asset Viewer (
roles/cloudasset.viewer
) -
Per analizzare i criteri con i ruoli IAM personalizzati:
Visualizzatore ruoli (
roles/iam.roleViewer
) -
Per utilizzare Google Cloud CLI per analizzare i criteri:
Consumatore di utilizzo del servizio (
roles/serviceusage.serviceUsageConsumer
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
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 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 seguenti ruoli vengono concessi a 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 ai singoli repository:
Amministratore di Artifact Registry (
roles/artifactregistry.admin
) nel progetto Google Cloud contenente le immagini di Container Registry -
Visualizza e gestisci la configurazione esistente di Container Registry applicata ai bucket di archiviazione Cloud Storage:
Amministratore archiviazione (
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 a progetti, cartelle e organizzazioni.
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 Cloud Storage:
Amministratore archiviazione (
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 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 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 il seguente 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 o un elenco di ID progetto separati da virgole di cui vuoi eseguire la migrazione ai 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 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 pubblica temporaneamente le immagini mancanti copiandole da Container Registry al momento della richiesta finché non vengono copiate tutte le immagini container in Artifact Registry.
- Copia tutte le immagini container archiviate nei bucket gcr.io nei repository gcr.io appena creati 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 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, entro i quali lo strumento deve verificare la presenza 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 da copiare
per ogni immagine. Se durante la copia vengono caricate nuove immagini, potrebbe essere copiato un numero superiore di versioni rispetto a quello specificato.
Il flag --recent-images
e il flag --last-uploaded-versions
sono reciprocamente
esclusivi e non possono essere utilizzati insieme.
Se si verificano errori o timeout, puoi riavviare il comando in tutta sicurezza e i passaggi completati vengono ignorati.
Esegui la migrazione ai repository Artifact Registry standard
Per eseguire la migrazione del progetto gcr.io a un repository Artifact Registry, esegui il comando seguente.
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 dagcr.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 Google Cloud di Container Registry ID progetto. 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 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 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 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 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.
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
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 di cui vuoi eseguire la migrazione ai repository gcr.io ospitati su Artifact Registry o un elenco di ID progetto separati da virgole di cui vuoi eseguire la migrazione ai repository gcr.io ospitati su 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 le immagini da Container Registry a un repository Artifact Registry standard, esegui il comando seguente:
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 dagcr.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 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 repository di 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.