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 del repository. Per scoprire come sono cambiate le modalità di creazione, push, pull e deployment delle immagini, consulta le seguenti informazioni:

Prima di iniziare

  1. Abilita l'API Artifact Registry dalla console Google Cloud o con il comando:

    gcloud services enable artifactregistry.googleapis.com
    
  2. Installa gcloud CLI, se non è 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 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:

  1. Crea un repository Docker per i tuoi container. Devi creare un repository prima di poter 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 le 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. Configura le funzionalità aggiuntive.
  8. 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.

  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 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
  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 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 sono 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 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.
Scansione on demand
Scansione automatica
  • Il comando CLI di Google Cloud gcloud container images include flag per visualizzare i risultati dell'analisi, tra cui vulnerabilità e altri metadati.
  • Le analisi restituiscono informazioni sulle vulnerabilità del sistema operativo solo per le immagini in Container Registry con sistemi operativi supportati.
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.
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.
  • Le analisi restituiscono informazioni sulle vulnerabilità del sistema operativo per le immagini in Artifact Registry con sistemi operativi supportati e informazioni sulle vulnerabilità del pacchetto di linguaggio sia per i sistemi operativi supportati sia per quelli non supportati.

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

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