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 di repository. Per saperne di più come sono cambiati la creazione, il push, il pull e il deployment delle immagini, le seguenti informazioni:
Prima di iniziare
Abilita l'API Artifact Registry dal Console Google Cloud o con il comando:
gcloud services enable artifactregistry.googleapis.com
Installa gcloud CLI, se non lo è 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 progetto (
roles/resourcemanager.projectIamAdmin
) o un ruolo che include autorizzazioni equivalenti come Amministratore cartelle (roles/resourcemanager.folderAdmin
) o Amministratore organizzazione (roles/resourcemanager.organizationAdmin
)
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.
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 i passaggi 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 utilizzi molti strumenti
configurazione, script o codice con riferimenti gcr.io
, una strategia
potrebbe essere necessario per la transizione ad Artifact Registry. Esamina il
documentazione sulla transizione
repository con supporto per il dominio gcr.io per aiutarti a
decisione appropriata.
Passaggi per la transizione
Questa guida ti mostrerà come completare i seguenti passaggi:
- Crea un repository Docker per i tuoi container. Devi e creare un repository prima di 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 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.
- Configurare le funzionalità aggiuntive.
- Esegui la pulizia delle immagini in Container Registry quando viene eseguita la transizione completato.
Crea 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 da utilizzare tramite CMEK. In Artifact Registry, configuri i repository per usare CMEK durante la loro creazione. Per ulteriori informazioni sull'utilizzo di CMEK con Artifact Registry, consulta Attivazione delle chiavi di crittografia gestite dal cliente.
Container Registry ospita i container sul 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 dispone del 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 registro 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 padre. 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 Cloud Storage ruoli ereditati dal progetto padre, devi verificare che l'entità che attualmente utilizza 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 IAM ha accesso limitato ai bucket di archiviazione. Non danno intrinsecamente tutto l'accesso a Cloud Storage che implicano il nome e 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. Artifact Registry i ruoli offrono un'ulteriore separazione delle autorizzazioni non disponibili nei ruoli Cloud Storage predefiniti.
Accesso richiesto Ruolo attuale Ruolo Artifact Registry Dove concedere il ruolo Esegui il pull delle immagini solo (sola lettura) Visualizzatore oggetti Storage
(roles/storage.objectViewer
)Lettore Artifact Registry
(roles/artifactregistry.reader)
Repository Artifact Registry o progetto Google Cloud Esegui il push e il pull delle immagini (lettura e scrittura) Writer bucket legacy Storage
(roles/storage.legacyBucketWriter
)Writer Artifact Registry
(roles/artifactregistry.writer)
Repository Artifact Registry o progetto Google Cloud Esegui il push, il pull e l'eliminazione delle immagini Writer bucket legacy Storage
(roles/storage.legacyBucketWriter
)Amministratore repository Artifact Registry
(roles/artifactregistry.repoAdmin)
Repository Artifact Registry o progetto Google Cloud Crea, gestisci ed elimina repository Amministratore Storage
(roles/storage.admin
)Amministratore 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.
Consulta le Riferimento del ruolo di agente di servizio per i dettagli sulle autorizzazioni nei ruoli degli agenti di servizio.
- Ruoli personalizzati
Utilizza la tabella della mappatura dei ruoli per decidere meglio il ruolo da concedere a utenti o account di servizio in base al livello di accesso di cui hanno bisogno.
Per istruzioni sulla concessione dei ruoli di Artifact Registry, consulta Configura ruoli e autorizzazioni.
Esegui l'autenticazione nel repository
Artifact Registry supporta gli stessi metodi di autenticazione di e Container Registry.
Se utilizzi l'helper per le credenziali Docker:
- Devi utilizzare la versione 2.0 o successiva per interagire con Artifact Registry repository. La versione autonoma è disponibile in GitHub.
- Devi configurare l'assistente per le credenziali con Artifact Registry dalle località 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.
Copia container da Container Registry
Se in Container Registry esistono container che vuoi continuare a utilizzare 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 Artifact Registry è simile a quelli che utilizzi in Container Registry. Esistono due differenze fondamentali:
- Il nome host per i repository Docker di Artifact Registry include una località
seguito da
-docker.pkg.dev
. Ecco alcuni esempi:australia-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
al registry eu.gcr.io
nel 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 maggiori dettagli sul push e sul pull delle immagini in Artifact Registry, vedi Push e 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, prima di eseguire il push delle immagini deve esistere un repository di destinazione, inclusa la prima immagine push.
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 puoi abilitare le API Artifact Analysis in Container Registry In Artifact Registry, le API sono attivate per entrambi i prodotti.
- Entrambi i prodotti utilizzano gli stessi argomenti Pub/Sub per Notifiche di Artifact Analysis.
- Puoi continuare a utilizzare gcloud container images
per elencare note e occorrenze associate ai percorsi delle immagini
gcr.io
.
Container Registry | Artifact Registry |
---|---|
Analizza le vulnerabilità del sistema operativo e dei pacchetti di linguaggio con la scansione on demand
nelle immagini con un sistema operativo supportato. La scansione automatica restituisce solo il sistema operativo
informazioni sulle vulnerabilità.
Scopri di più sui tipi di
scansione.
|
Scansioni delle vulnerabilità del sistema operativo e dei pacchetti in lingua sia on demand che
scansione automatica.
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 istruzioni sulla configurazione, vedi
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 lo spazio di archiviazione di Container Registry
il nome del bucket. 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 lascia abilitata l'API Container Registry. Se provi a disabilitare l'API Container Registry. Container Registry mostra un avviso se altri servizi con un'infrastruttura le dipendenze siano abilitate nel progetto. Disabilitazione dell'API Container Registry disabilita automaticamente tutti i servizi 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.