Transizione ai repository standard

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

  1. Abilita l'API Artifact Registry dal Console Google Cloud o con il comando:

    gcloud services enable artifactregistry.googleapis.com
    
  2. Installa gcloud CLI, se non lo è già installato. Per un'installazione esistente, esegui questo comando per aggiornare alle ultime versioni:

    gcloud components update
    
  3. 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:

  1. Crea un repository Docker per i tuoi container. Devi e creare un repository prima di eseguire il push delle immagini.
  2. Concedi le autorizzazioni al repository.
  3. Configura l'autenticazione per poterti connettere con il tuo nuovo repository Git.
  4. Se necessario, copia immagini da Container Registry che vuoi utilizzare nel nuovo repository.
  5. Prova a eseguire il push e il pull dei container.
  6. Prova a eseguire il deployment delle immagini in un ambiente di runtime.
  7. Configurare le funzionalità aggiuntive.
  8. 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.

  1. Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.

    Vai a Bucket

  2. 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
  3. Fai clic sulla scheda Autorizzazioni.

  4. Nella scheda Autorizzazioni, fai clic sulla scheda secondaria Visualizza per ruolo.

  5. 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, e europe-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.
Scansione on demand
Scansione automatica
  • Il comando Google Cloud CLI gcloud container images include flag per la visualizzazione dei risultati della scansione, incluse le vulnerabilità e altri metadati.
  • Le analisi restituiscono informazioni sulle vulnerabilità del sistema operativo solo per le immagini in di Container Registry con e sistemi operativi supportati.
Scansioni delle vulnerabilità del sistema operativo e dei pacchetti in lingua sia on demand che scansione automatica. Scopri di più sui tipi di scansione.
Scansione on demand
Scansione automatica
  • Il comando Google Cloud CLI gcloud immagini Docker artefatti includono flag per la visualizzazione dei risultati della scansione, incluse le vulnerabilità e altri metadati.
  • La scansione restituisce informazioni sulla vulnerabilità del sistema operativo per le immagini in Artifact Registry con sistemi operativi supportati e pacchetto di lingue informazioni sulle vulnerabilità per i sistemi operativi supportati e non supportati sistemi operativi.

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

  1. Vai alla pagina di Cloud Storage nella console Google Cloud.
  2. 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
  3. Fai clic su Elimina. Viene visualizzata una finestra di dialogo di conferma.

  4. 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