Utilizza lo strumento di migrazione automatica per passare da Container Registry ai repository gcr.io
ospitati su Artifact Registry.
La migrazione ai repository di Artifact Registry gcr.io
può essere eseguita sugli endpoint di Container Registry che ricevono traffico senza richiedere tempi di riposo o interruzione del servizio.
Lo strumento di migrazione automatica può eseguire le seguenti azioni:
- Crea repository
gcr.io
in Artifact Registry per ciascuno dei progettigcr.io
elencati nella regione corrispondente. - Suggerire un criterio IAM per ogni repository e applicarlo o saltare 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
, anche se hai già attivato il reindirizzamento.
Prima di iniziare
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Enable the Artifact Registry API.
Lo strumento di migrazione automatica ti chiede di abilitare l'API Artifact Registry se salti questo passaggio.
Ruoli obbligatori
I seguenti ruoli sono necessari per la transizione ai repository gcr.io
in Artifact Registry utilizzando lo strumento di migrazione automatica.
Ruoli dell'account di servizio:
Puoi utilizzare l'account di servizio di migrazione gcr.io
con l'indirizzo email di
artifact-registry-same-project-copier@system.gserviceaccount.com
o l'account di servizio Artifact Registry per eseguire la transizione ai repository gcr.io
in Artifact Registry.
Per assicurarti che l'account di servizio che utilizzi per la migrazione disponga delle autorizzazioni necessarie per copiare le immagini da Container Registry ad Artifact Registry,
chiedi all'amministratore di concedere all'account di servizio che utilizzi per la migrazione il ruolo IAM Visualizzatore oggetti archiviazione (roles/storage.objectViewer
) per il progetto, la cartella o l'organizzazione Container Registry.
L'amministratore potrebbe anche essere in grado di concedere all'account di servizio che utilizzi per la migrazione le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
Ruoli utente:
Per ottenere le autorizzazioni necessarie per eseguire la transizione ai repository gcr.io
ospitati su Artifact Registry, chiedi all'amministratore di concederti il ruolo IAM Amministratore della migrazione di Container Registry in Artifact Registry (roles/artifactregistry.containerRegistryMigrationAdmin
) nell' Google Cloud organizzazione o nel progetto di cui vuoi eseguire la migrazione.
Per ulteriori informazioni 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 Google Cloud progetto o di più Google Cloud progetti 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 progettigcr.io
elencati nella regione corrispondente. - Suggerisce un criterio IAM per ogni repository e lo applica o ne salta l'applicazione in base alle 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é tutte le immagini dei container non vengono copiate in Artifact Registry. - Copia tutte le immagini container archiviate nei bucket
gcr.io
nei repositorygcr.io
appena creati ospitati su Artifact Registry. - Disattiva 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-180 giorni, puoi includere il flag --recent-images=DAYS
.
Sostituisci DAYS con il numero di giorni, compreso tra 30 e 180, 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 più del numero di versioni specificate.
Il flag --recent-images
e il flag --last-uploaded-versions
si escludono a vicenda 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 più lentamente con le letture canary
Puoi utilizzare il flag --canary-reads
per implementare solo una percentuale di letture e nessuna scrittura in Artifact Registry. Le immagini mancanti estratte da
Artifact Registry vengono copiate da Container Registry al momento della richiesta.
La migrazione con letture canarie presenta due vantaggi:
- L'implementazione in Artifact Registry può essere testata prima su un numero molto inferiore di richieste.
- Le immagini vengono comunque inviate a Container Registry durante la maggior parte del processo, quindi è più sicuro eseguire il rollback.
Ti consigliamo la seguente procedura:
Per impostare la percentuale di letture canary su 1%, esegui il seguente comando:
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=1
Verifica che tutto funzioni ancora correttamente.
Per impostare la percentuale di letture canary sul 10%, esegui il seguente comando :
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=10
Verifica che tutto funzioni ancora correttamente.
Per impostare le letture canary sul 100%, esegui il seguente comando:
gcloud artifacts docker upgrade migrate \ --projects=PROJECTS \ --canary-reads=100
A questo punto, tutte le letture vengono inviate ad Artifact Registry e tutte le scritture vengono ancora inviate a Container Registry.
Per completare la migrazione, invia anche le scritture ad Artifact Registry eseguendo il comando artifacts docker upgrade migrate
senza il flag --canary-reads
:
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS
Esegui il rollback delle letture canary
Per eseguire il rollback delle letture canary, esegui il seguente comando:
gcloud artifacts docker upgrade migrate \
--projects=PROJECTS \
--canary-reads=0
Le letture Canary vengono disattivate anche quando vengono eseguiti i comandi gcloud artifacts settings disable-upgrade-redirection
o gcloud artifacts settings enable-upgrade-redirection
.
Quota di AnalyzeIamPolicy
Se esegui la migrazione di un numero elevato di progetti e non hai più quota AnalyzeIamPolicy, puoi utilizzare il flag --no-use-analyze-iam
. L'utilizzo del flag --no-use-analyze-iam
per la migrazione è più lento rispetto a non utilizzarlo, ma evita di inviare richieste in base alla quota di AnalyzeIamPolicy.