Se attualmente utilizzi Container Registry per gestire le immagini container, spiega come configurare un repository Artifact Registry standard e come l'uso dei repository differisce da Container Registry.
Queste istruzioni sono rivolte principalmente agli amministratori del repository. Per scoprire come sono cambiate le modalità di creazione, push, pull e deployment delle immagini, consulta le seguenti informazioni:
Prima di iniziare
Abilita l'API Artifact Registry dalla console Google Cloud o con il comando:
gcloud services enable artifactregistry.googleapis.com
Installa gcloud CLI, se non è già installato. Per un'installazione esistente, esegui questo comando per aggiornare alle ultime versioni:
gcloud components update
Scopri di più sui prezzi di Artifact Registry prima del giorno inizi la transizione.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare i repository gcr.io, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto Google Cloud:
-
Per creare repository Artifact Registry e concedere l'accesso a singoli repository:
Amministratore Artifact Registry (
roles/artifactregistry.admin
) -
Per visualizzare e gestire la configurazione esistente di Container Registry applicata ai bucket di archiviazione di Cloud Storage:
Storage Admin (
roles/storage.admin
) -
Per concedere l'accesso al repository a livello di progetto:
Amministratore IAM del progetto (
roles/resourcemanager.projectIamAdmin
) o un ruolo che includa autorizzazioni equivalenti, come Amministratore cartella (roles/resourcemanager.folderAdmin
) o Amministratore organizzazione (roles/resourcemanager.organizationAdmin
)
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.
Panoramica
I repository standard sono normali repository Artifact Registry che tutte le funzionalità.
Per semplicità, le istruzioni in questa pagina presuppongono che sia Container Registry e Artifact Registry si trovano nello stesso progetto Google Cloud. Puoi continuerà a utilizzare entrambi i servizi durante la transizione ad Artifact Registry, puoi eseguire gradualmente la procedura di configurazione e aggiornare l'automazione. Se necessario, puoi configurare Artifact Registry in un progetto separato eseguire gli stessi passaggi generali.
Artifact Registry offre anche repository gcr.io.
Questi repository possono reindirizzare il traffico gcr.io
dai registri esistenti
ai repository Artifact Registry corrispondenti. Forniscono alcuni
con le versioni precedenti di Container Registry, ma presentano anche
limitazioni. Tuttavia, se hai molti script, configurazioni di strumenti o codice con riferimenti a gcr.io
, potrebbe essere necessario un approccio più tattico per la transizione ad Artifact Registry. Esamina la documentazione relativa alla transizione per i repository con supporto per il dominio gcr.io per prendere una decisione appropriata.
Passaggi per la transizione
Questa guida ti mostrerà come completare i seguenti passaggi:
- Crea un repository Docker per i tuoi container. Devi creare un repository prima di poter eseguire il push delle immagini.
- Concedi le autorizzazioni al repository.
- Configura l'autenticazione per poterti connettere con il tuo nuovo repository Git.
- Se necessario, copia le immagini da Container Registry che vuoi utilizzare nel nuovo repository.
- Prova a eseguire il push e il pull dei container.
- Prova a eseguire il deployment delle immagini in un ambiente di runtime.
- Configura le funzionalità aggiuntive.
- Esegui la pulizia delle immagini in Container Registry al termine della transizione.
Creare repository
Container Registry crea automaticamente un bucket di archiviazione in una località multiregionale se non hai mai inviato un'immagine in quella posizione.
In Artifact Registry, devi creare un repository prima di poter eseguire il caricamento in formato Docker. Quando crei un repository, devi specificare:
- Il formato del repository. Artifact Registry archivia i container nei repository Docker.
Una o più regioni location per il repository.
Quando scegli una località per i tuoi repository Artifact Registry, considera la vicinanza dei repository all'altra infrastruttura i tuoi utenti. Se intendi copiare immagini da Container Registry in Artifact Registry, le differenze di località possono influire sul costo copia.
Una chiave Cloud Key Management Service, se utilizzi chiavi di crittografia gestite dal cliente (CMEK) per la crittografia.
In Container Registry, configuri il bucket di archiviazione di Container Registry in modo da utilizzareCMEK. In Artifact Registry, configuri i repository per usare CMEK durante la loro creazione. Per saperne di più sull'utilizzo delle chiavi CMEK con Artifact Registry, consulta Attivare le chiavi di crittografia gestite dal cliente.
Container Registry ospita i container nel dominio gcr.io
.
Artifact Registry ospita i container sul dominio pkg.dev
.
Per informazioni sulla creazione di repository, inclusi quelli che utilizzano CMEK per la crittografia, vedi Creazione di repository.
Concedi le autorizzazioni
Container Registry utilizza i ruoli di Cloud Storage per controllare l'accesso. Artifact Registry ha il proprio IAM roles. Questi ruoli separano i ruoli di lettura, scrittura e amministrazione dei repository in modo più chiaro e Container Registry.
per mappare rapidamente le autorizzazioni esistenti concesse sui bucket di archiviazione ai suggerimenti Per i ruoli di Artifact Registry, utilizza lo strumento di mappatura dei ruoli.
In alternativa, puoi visualizzare un elenco di entità con accesso allo spazio di archiviazione utilizzando la console Google Cloud.
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Fai clic sul bucket di archiviazione per l'host del registry che vuoi visualizzare. Nei nomi dei bucket,
PROJECT-ID
è il tuo Google Cloud ID progetto.- gcr.io:
artifacts.PROJECT-ID.appspot.com
- asia.gcr.io:
asia.artifacts.PROJECT-ID.appspot.com
- eu.gcr.io:
eu.artifacts.PROJECT-ID.appspot.com
- us.gcr.io:
us.artifacts.PROJECT-ID.appspot.com
- gcr.io:
Fai clic sulla scheda Autorizzazioni.
Nella scheda Autorizzazioni, fai clic sulla scheda secondaria Visualizza per ruolo.
Espandi un ruolo per visualizzare le entità che lo hanno.
L'elenco include i ruoli IAM concessi direttamente nel bucket e i ruoli ereditati dal progetto principale. In base al ruolo, puoi scegliere il ruolo Artifact Registry più appropriato da concedere.
- Cloud Storage e ruoli di base
Concedi agli utenti e agli account di servizio che attualmente accedono a Container Registry con accesso ai repository Artifact Registry. Per i ruoli Cloud Storage ereditati dal progetto principale, devi verificare che il principale utilizzi attualmente Container Registry. Alcune entità potrebbero accedere solo ad altri bucket Cloud Storage non correlati a Container Registry.
I ruoli di base Proprietario, Editor e Visualizzatore esistenti prima di IAM hanno accesso limitato ai bucket di archiviazione. Non forniscono intrinsecamente tutto l'accesso alle risorse Cloud Storage suggerito dai loro nomi e non forniscono autorizzazioni aggiuntive per altri servizi Google Cloud. Verifica quali utenti e account di servizio richiedono l'accesso ad Artifact Registry e utilizza la tabella di mappatura dei ruoli per facilitare concedi i ruoli corretti se l'accesso ad Artifact Registry è appropriato.
La tabella seguente mappa i ruoli di Artifact Registry in base alle autorizzazioni concesse ruoli Cloud Storage predefiniti per l'accesso a Container Registry. I ruoli di Artifact Registry forniscono una separazione aggiuntiva delle autorizzazioni non disponibile nei ruoli Cloud Storage predefiniti.
Accesso richiesto Ruolo attuale Ruolo Artifact Registry Dove concedere il ruolo Esegui il pull delle immagini solo (sola lettura) Storage Object Viewer
(roles/storage.objectViewer
)Lettore di Artifact Registry
(roles/artifactregistry.reader)
Repository Artifact Registry o progetto Google Cloud Esegui il push e il pull delle immagini (lettura e scrittura) Storage Legacy Bucket Writer
(roles/storage.legacyBucketWriter
)Artifact Registry Writer
(roles/artifactregistry.writer)
Repository Artifact Registry o progetto Google Cloud Eseguire il push, il pull ed eliminare le immagini Writer bucket legacy Storage
(roles/storage.legacyBucketWriter
)Artifact Registry Repository Administrator
(roles/artifactregistry.repoAdmin)
Repository Artifact Registry o progetto Google Cloud Creare, gestire ed eliminare i repository Amministratore Storage
(roles/storage.admin
)Amministratore di Artifact Registry
(roles/artifactregistry.Admin)
Progetto Google Cloud - Ruoli dell'agente di servizio ereditati dal progetto
Gli account di servizio predefiniti per i servizi Google Cloud hanno le proprie ruoli concessi a livello di progetto. Ad esempio, l'agente di servizio Cloud Run ha il ruolo di agente di servizio Cloud Run.
Nella maggior parte dei casi, questi ruoli dell'agente di servizio contengono valori predefiniti equivalenti per Container Registry e Artifact Registry e tu non deve apportare ulteriori modifiche se è in esecuzione Artifact Registry nello stesso progetto del tuo Container Registry esistente completamente gestito di Google Cloud.
Per informazioni dettagliate sulle autorizzazioni nei ruoli dell'agente di servizio, consulta la documentazione di riferimento sui ruoli dell'agente di servizio.
- Ruoli personalizzati
Utilizza la tabella di mappatura dei ruoli per decidere il ruolo da concedere agli utenti o agli account di servizio in base al livello di accesso richiesto.
Per istruzioni su come concedere i ruoli di Artifact Registry, consulta Configurare ruoli e autorizzazioni.
Esegui l'autenticazione nel repository
Artifact Registry supporta gli stessi metodi di autenticazione di Container Registry.
Se utilizzi l'helper per le credenziali Docker:
- Per interagire con i repository di Artifact Registry, devi utilizzare la versione 2.0 o successive. La versione autonoma è disponibile su GitHub.
- Devi configurare l'helper delle credenziali con le posizioni di Artifact Registry che intendi utilizzare. Per impostazione predefinita, solo l'helper delle credenziali configura l'accesso agli host di Container Registry.
Per maggiori dettagli sulla configurazione dell'autenticazione, vedi Configura l'autenticazione per Docker.
Copiare i container da Container Registry
Se in Container Registry sono presenti container che vuoi continuare a utilizzare in Artifact Registry, esistono diverse opzioni per copiarli. Per istruzioni dettagliate, vedi Copia di immagini da Container Registry
Esegui il push e il pull delle immagini
I comandi Docker che utilizzi per taggare, eseguire il push e il pull delle immagini in Artifact Registry sono simili a quelli che utilizzi in Container Registry. Esistono due differenze principali:
- Il nome host per i repository Docker di Artifact Registry include una località
seguito da
-docker.pkg.dev
. Alcuni esempi sonoaustralia-southeast1-docker.pkg.dev
,europe-north1-docker.pkg.dev
eeurope-docker.pkg.dev
. - Poiché Artifact Registry supporta più repository Docker in un singolo devi specificare il nome del repository nei comandi.
Ad esempio, in Container Registry, questo comando esegue il push dell'immagine
my-image
nel registry eu.gcr.io
del progetto my-project
.
docker push eu.gcr.io/my-project/my-image
In Artifact Registry, questo comando esegue il push dell'immagine my-image
al
il repository regionale europe-north1-docker.pkg.dev
nel repository my-repo
e
del progetto my-project
.
docker push europe-north1-docker.pkg.dev/my-project/my-repo/my-image
Per informazioni dettagliate su come eseguire il push e il pull delle immagini in Artifact Registry, consulta Eseguire il push e il pull delle immagini.
Esegui il deployment delle immagini
Gli account di servizio per le integrazioni comuni con Google Cloud configurate con autorizzazioni predefinite per i repository nello stesso progetto.
Creare immagini ed eseguirne il push in un repository con Cloud Build in generale funziona allo stesso modo di Container Registry. La differenza principale in Artifact Registry è che un repository di destinazione deve esistere prima di eseguire il push delle immagini, inclusa la prima immagine.
Assicurati di creare i repository di cui hai bisogno prima di eseguire comandi che
esegui il push delle immagini, tra cui il comando Docker docker push
e Cloud Build
comando gcloud builds submit
.
I builder di Cloud Build sono ancora ospitati su gcr.io
. Per ulteriori informazioni,
consulta Integrazione con Cloud Build.
Altre caratteristiche
Questa sezione descrive la configurazione di altre funzionalità che potresti aver impostato in Container Registry.
Artifact Analysis
Artifact Analysis supporta sia Container Registry che Artifact Registry. La documentazione di Artifact Analysis include entrambi i prodotti.
- Entrambi i prodotti utilizzano le stesse API Artifact Analysis. Quando attivi le API Artifact Analysis in Container Registry o Artifact Registry, le API vengono attivate per entrambi i prodotti.
- Entrambi i prodotti utilizzano gli stessi argomenti Pub/Sub per le notifiche di analisi degli elementi.
- Puoi continuare a utilizzare i comandi gcloud container images per elencare le note e le occorrenze associate ai percorsi delle immagini
gcr.io
.
Container Registry | Artifact Registry |
---|---|
Cerca le vulnerabilità del sistema operativo e dei pacchetti di linguaggio con l'analisi on demand
nelle immagini con un sistema operativo supportato. La scansione automatica restituisce solo informazioni sulle vulnerabilità del sistema operativo.
Scopri di più sui tipi di
scansione.
|
Cerca le vulnerabilità del sistema operativo e dei pacchetti di lingua con l'analisi automatica e on demand.
Scopri di più sui tipi di
scansione.
|
Notifiche Pub/Sub
Artifact Registry pubblica le modifiche nello stesso argomento gcr
di
e Container Registry. Non è necessaria alcuna configurazione aggiuntiva se utilizzi già
Pub/Sub con Container Registry nello stesso progetto di
Artifact Registry.
Se configuri Artifact Registry in un progetto separato, l'argomento gcr
potrebbero non esistere. Per le istruzioni di configurazione, consulta Configurazione delle notifiche Pub/Sub.
Perimetri di servizio
Con Controlli di servizio VPC, è possibile e configurare i perimetri di sicurezza attorno alle risorse dei tuoi clienti e controllare il movimento dei dati attraverso il confine del perimetro.
Per le istruzioni, consulta Protezione dei repository in un perimetro di servizio.
Esegui la pulizia delle immagini di Container Registry
Quando è tutto pronto per interrompere l'utilizzo di Container Registry, elimina il resto eliminando i bucket di archiviazione per Container Registry.
Per eliminare ciascun bucket di archiviazione di Container Registry:
Console
- Vai alla pagina di Cloud Storage nella console Google Cloud.
Seleziona il bucket di archiviazione da eliminare. Nei nomi dei bucket,
PROJECT-ID
è il tuo account Google Cloud ID progetto.- gcr.io:
artifacts.PROJECT-ID.appspot.com
- asia.gcr.io:
asia.artifacts.PROJECT-ID.appspot.com
- eu.gcr.io:
eu.artifacts.PROJECT-ID.appspot.com
- us.gcr.io:
us.artifacts.PROJECT-ID.appspot.com
- gcr.io:
Fai clic su Elimina. Viene visualizzata una finestra di dialogo di conferma.
Per confermare l'eliminazione, inserisci il nome del bucket e fai clic su Elimina.
gcloud
Se vuoi eliminare collettivamente un centinaio di immagini o più in un bucket, evitare di utilizzare gcloud CLI poiché il processo di eliminazione richiede per completare l'operazione. Utilizza la console Google Cloud per eseguire l'operazione . Per ulteriori informazioni, vedi eliminazione collettiva di oggetti Cloud Storage.
Per eliminare un bucket, utilizza gcloud storage rm
con il flag --recursive
.
gcloud storage rm gs://BUCKET-NAME --recursive
Sostituisci BUCKET-NAME
con il nome del
bucket di archiviazione di Container Registry. Nei nomi dei bucket, PROJECT-ID
è il tuo
Google Cloud
ID progetto.
- gcr.io:
artifacts.PROJECT-ID.appspot.com
- asia.gcr.io:
asia.artifacts.PROJECT-ID.appspot.com
- eu.gcr.io:
eu.artifacts.PROJECT-ID.appspot.com
- us.gcr.io:
us.artifacts.PROJECT-ID.appspot.com
La risposta è simile al seguente esempio:
Removing gs://artifacts.my-project.appspot.com/...
Se altri servizi Google Cloud sono in esecuzione nello stesso account Google Cloud lascia abilitata l'API Container Registry. Se provi a disabilitare l'API Container Registry. Container Registry mostra un avviso se nel progetto sono abilitati altri servizi con una dipendenza configurata. Disabilitazione dell'API Container Registry disabilita automaticamente qualsiasi servizio nello stesso progetto con un della dipendenza, anche se attualmente non utilizzi Container Registry con i servizi di machine learning.
Passaggi successivi
- Prova la guida rapida di Docker.