Artifact Registry è il servizio consigliato per la gestione delle immagini container. Container Registry è ancora supportato, ma riceverà solo correzioni di sicurezza critiche. Scopri come passare ad Artifact Registry.

Utilizzo di Container Registry con Google Cloud

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Per semplificare i flussi di lavoro di creazione e deployment, alcuni account di servizio e ambienti di runtime di Google Cloud sono preconfigurati con le autorizzazioni di accesso ai container archiviati nello stesso progetto.

Questa pagina riassume le integrazioni comuni con i prodotti Google Cloud e i requisiti associati per accedere ai container.

Requisiti di accesso generali

Per impostazione predefinita, gli account di servizio per alcune integrazioni comuni sono configurati con autorizzazioni di Cloud Storage per accedere a Container Registry all'interno dello stesso progetto.

Per l'account di servizio utilizzato dalle VM di Compute Engine, incluse le VM nei cluster di Google Kubernetes Engine, l'accesso si basa sia sulle autorizzazioni IAM sia sugli ambiti di accesso allo spazio di archiviazione.

Devi configurare o modificare le autorizzazioni autonomamente se:

  • Stai utilizzando un account di servizio in un progetto per accedere a Container Registry in un altro progetto
  • Stai utilizzando un account di servizio predefinito con accesso di sola lettura allo spazio di archiviazione, ma vuoi eseguire il pull e il push delle immagini
  • Utilizzi un account di servizio personalizzato per interagire con Container Registry

Per ulteriori informazioni, fai riferimento alle sezioni specifiche del prodotto.

Cloud Build

Per impostazione predefinita, l'account di servizio di Cloud Build ha le autorizzazioni per eseguire il push e il pull delle immagini quando Container Registry si trova nello stesso progetto.

Devi configurare le autorizzazioni appropriate nei seguenti casi:

  • Cloud Build si trova in un progetto diverso da quello dei repository a cui vuoi accedere.
  • Le build utilizzano un account di servizio diverso da quello di Cloud Build predefinito. In questo caso, devi concedere all'account di servizio le autorizzazioni per accedere a Container Registry.

Compute Engine

Puoi creare istanze VM utilizzando le immagini archiviate in Container Registry.

Autorizzazioni obbligatorie

Se l'istanza VM e Container Registry si trovano nello stesso progetto Google Cloud, l'account di servizio predefinito di Compute Engine è configurato con autorizzazioni per il pull delle immagini.

Se l'istanza VM si trova in un progetto diverso o se l'istanza VM utilizza un account di servizio diverso, devi concedere all'account di servizio le autorizzazioni appropriate per accedere al bucket di archiviazione utilizzato da Container Registry.

Per impostazione predefinita, una VM di Compute Engine ha l'ambito di accesso read-only configurato per i bucket di archiviazione. Per eseguire il push di immagini Docker private, l'istanza VM deve avere l'ambito di accesso allo spazio di archiviazione read-write.

Per maggiori dettagli sulle autorizzazioni e gli ambiti di accesso, vedi Integrazione con i servizi Google Cloud.

Deployment delle immagini

Quando crei una VM, puoi eseguirvi il deployment di un'immagine. Per saperne di più, consulta la documentazione di Compute Engine per il deployment dei container e la creazione di modelli di istanze VM.

Istanze Compute Engine ottimizzate per i container

Per informazioni su come avviare un'istanza di Compute Engine ottimizzata per il container utilizzando un'immagine nel registro, consulta l'articolo Avvio di un container Docker tramite cloud-config.

Per ulteriori informazioni, consulta Creazione e configurazione di istanze.

Google Kubernetes Engine

Google Kubernetes Engine utilizza l'account di servizio configurato sulle istanze VM dei nodi del cluster per eseguire il push e il pull delle immagini.

Autorizzazioni obbligatorie

Se il cluster Google Kubernetes Engine e il bucket di archiviazione di Container Registry si trovano nello stesso progetto Google Cloud, l'account di servizio predefinito di Compute Engine è configurato con le autorizzazioni appropriate per il push o il pull delle immagini.

Se il cluster si trova in un progetto diverso o se le VM nel cluster utilizzano un account di servizio diverso, devi concedere all'account di servizio le autorizzazioni appropriate per accedere al bucket di archiviazione utilizzato da Container Registry.

Per impostazione predefinita, una VM di Compute Engine ha l'ambito di accesso read-only configurato per i bucket di archiviazione. Per eseguire il push di immagini Docker private, l'istanza VM deve avere l'ambito di accesso allo spazio di archiviazione read-write.

Per maggiori dettagli sulle autorizzazioni e gli ambiti di accesso, vedi Integrazione con i servizi Google Cloud.

Esecuzione di un'immagine

Puoi eseguire un'immagine Container Registry in un cluster Google Kubernetes Engine utilizzando il seguente comando:

kubectl run [NAME] --image=[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

dove:

  • [NAME] è il nome della risorsa
  • [HOSTNAME] è elencato sotto Location nella console. È una delle quattro opzioni: gcr.io, us.gcr.io, eu.gcr.io o asia.gcr.io.
  • [PROJECT-ID] è il tuo ID progetto di Google Cloud Console. Se l'ID progetto contiene i due punti (:), consulta la sezione Progetti con ambito a livello di dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.
  • [TAG] è il tag che identifica la versione dell'immagine in Container Registry. Se non specifichi un tag, Container Registry cerca il tag predefinito latest.

Per ulteriori informazioni sui comandi Kubernetes, consulta la Panoramica di kubectl.

Cloud Run

Puoi eseguire il deployment di immagini archiviate in Container Registry in Cloud Run.

Autorizzazioni obbligatorie

Per eseguire il deployment in Cloud Run, devi avere il ruolo Proprietario o Editor oppure i ruoli Amministratore di Cloud Run e Utente account di servizio oppure qualsiasi ruolo personalizzato che includa questo elenco specifico di autorizzazioni.

Deployment delle immagini

Per informazioni sul deployment di un'immagine in Cloud Run, consulta la documentazione di Cloud Run.

Ambiente flessibile di App Engine

Puoi utilizzare l'ambiente flessibile di App Engine per personalizzare un runtime esistente (come Java 8) o per fornire una tua tempistica fornendo un'immagine Docker o Dockerfile personalizzata.

Con Cloud Build, puoi automatizzare la creazione dei container, eseguirne il push su Container Registry e eseguirne il deployment in App Engine.

Autorizzazioni obbligatorie

Per impostazione predefinita, l'account di servizio predefinito di App Engine è autorizzato a eseguire il pull e il push ai repository nello stesso progetto.

Se App Engine si trova in un progetto diverso, devi concedere all'account di servizio App Engine con le autorizzazioni per accedere al repository di Container Registry.

Deployment in App Engine

Puoi eseguire il deployment di un'immagine ospitata da Container Registry in App Engine mediante l'interfaccia a riga di comando di Google Cloud.

  1. Crea il file di configurazione di App Engine per la tua app.
  2. Creare un'immagine Docker ed eseguire il push al tuo repository. Puoi utilizzare Cloud Build per creare ed eseguire il push del tuo container nel repository.
  3. Esegui il deployment dell'immagine in App Engine eseguendo questo comando:

    gcloud app deploy --image-url=[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
    

dove:

  • [HOSTNAME] è elencato sotto Location nella console. È una delle quattro opzioni: gcr.io, us.gcr.io, eu.gcr.io o asia.gcr.io.
  • [PROJECT-ID] è il tuo ID progetto di Google Cloud Console. Se l'ID progetto contiene i due punti (:), consulta la sezione Progetti con ambito a livello di dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.
  • [TAG] è il tag che identifica la versione dell'immagine in Container Registry. Se non specifichi un tag, Container Registry cerca il tag predefinito latest.