Deployment di container su VM e MIG


Puoi configurare un'istanza di una macchina virtuale (VM) o un modello di istanza per eseguire il deployment e avviare un container Docker. Compute Engine fornisce un'immagine aggiornata di Container-Optimized OS (COS) con Docker installato e avvia il contenitore all'avvio della VM.

Prima di iniziare

  • Se non hai familiarità con i container, consulta Cosa sono i container e quali vantaggi offrono.
  • Se non hai dimestichezza con Docker, leggi la documentazione di Docker.
  • Scopri di più su Container-Optimized OS.
  • Scopri di più sui gruppi di istanze gestite (MIG).
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.

Scelta di eseguire il deployment di container su VM e MIG

Se esegui il deployment dei contenitori su Compute Engine, puoi semplificare il deployment delle app e controllare al contempo l'infrastruttura VM.

  • Gestisci le VM che eseguono i container nello stesso modo in cui gestisci qualsiasi altra VM durante la configurazione e la gestione dell'infrastruttura Compute Engine.
  • Utilizza processi e strumenti familiari come Google Cloud CLI o l'API Compute Engine per gestire le VM con i container.
  • Crea servizi scalabili utilizzando gruppi di istanze gestite (MIG) che eseguono i contenitori, che offrono funzionalità come la scalabilità automatica, la riparazione automatica, gli aggiornamenti in sequenza, i deployment multizona e il bilanciamento del carico.

In alternativa, puoi valutare la possibilità di eseguire il deployment in Google Kubernetes Engine per:

  • Esegui un numero elevato di microservizi
  • Avere un tempo di avvio del contenitore più rapido
  • Sfrutta l'orchestrazione automatica di Kubernetes, inclusi upgrade automatici, riparazione automatica dei nodi e scalabilità automatica

L'esecuzione di ogni microservizio su una macchina virtuale (VM) separata su Compute Engine potrebbe far sì che il sovraccarico del sistema operativo rappresenti una parte significativa del costo. Google Kubernetes Engine ti consente di eseguire il deployment di più container e gruppi di container per ogni istanza VM, in modo da allocare in modo più efficiente le risorse della VM host ai microservizi con un'impronta più ridotta.

Come funziona il deployment dei container su Compute Engine

I metodi comuni per eseguire il deployment di software su un'istanza VM di Compute Engine includono:

  • Esegui il deployment del software all'avvio della VM utilizzando un script di avvio o cloud-init.
  • Creazione di un'immagine del disco di avvio personalizzato con software preinstallato.

Entrambi i metodi precedenti combinano le attività di configurazione dell'app e di configurazione dell'ambiente del sistema operativo. In qualità di sviluppatore, devi monitorare attentamente e risolvere eventuali dipendenze di runtime. Ad esempio, se due app in esecuzione su una VM utilizzano versioni diverse della stessa libreria, devi installare entrambe le versioni e fare riferimento a queste tramite le variabili di sistema.

App in esecuzione su versioni diverse della stessa libreria.
Un'istanza VM con app di cui è stato eseguito il deployment direttamente nel sistema operativo

In alternativa, puoi eseguire il deployment del software in un container su un'istanza VM o su un gruppo di istanze gestite. Un container contiene sia il software dell'applicazione sia le librerie richieste ed è isolato dalle app e dalle librerie del sistema operativo. Un contenitore può essere facilmente trasferito da un ambiente di deployment all'altro senza dover gestire versioni di librerie in conflitto nel contenitore e nel relativo sistema operativo.

App in container.
Un'istanza VM con app di cui è stato eseguito il deployment in un contenitore

La procedura seguente descrive come eseguire il deployment di un contenitore su Compute Engine:

  1. Raggruppa l'app e le librerie richieste in un'immagine Docker e pubblica l'immagine in Artifact Registry o in un registro di terze parti come Docker Hub.
  2. Specifica un nome dell'immagine Docker e la configurazione docker run quando crei un'istanza VM o un modello di istanza per un MIG.

Compute Engine esegue le seguenti attività dopo che hai effettuato una richiesta per creare un'istanza VM:

  1. Compute Engine crea un'istanza VM che utilizza un'immagine Container-Optimized OS fornita da Google. Questa immagine include un runtime Docker e software aggiuntivo responsabile dell'avvio del container.
  2. Compute Engine archivia le impostazioni del contenitore nei metadati dell'istanza sotto la chiave dei metadati gce-container-declaration.
  3. All'avvio della VM, l'immagine di Container-Optimized OS utilizza la configurazione del comando docker run memorizzata nei metadati dell'istanza, estrae l'immagine del container dal repository e avvia il container.
Utilizzo dell'immagine container e del comando docker run.
Passaggi per creare un'istanza VM o un gruppo di istanze gestite che esegue un contenitore

Limitazioni

  • Puoi eseguire il deployment di un solo container per ogni istanza VM. Valuta la possibilità di utilizzare Google Kubernetes Engine se devi eseguire il deployment di più contenuti per istanza VM.
  • Puoi eseguire il deployment dei container solo da un repository pubblico o da un repository Artifact Registry o Container Registry privato a cui puoi accedere. Gli altri repository privati non sono supportati.

    Per informazioni sulle autorizzazioni dei registry privati, consulta la documentazione sul controllo dell'accesso per Artifact Registry o Container Registry.

  • Non puoi mappare le porte di un'istanza VM alle porte del container (opzione -p di Docker). Per consentire l'accesso ai contenitori, consulta Pubblicazione delle porte dei contenitori.

  • Con questo metodo di deployment puoi utilizzare solo immagini del sistema operativo ottimizzato per i container.

  • Puoi utilizzare questa funzionalità solo tramite la console Google Cloud o Google Cloud CLI, non tramite l'API.

Preparazione di un container per il deployment

Scegli uno dei seguenti approcci per rendere accessibile l'immagine del contenitore a Compute Engine:

  • Carica l'immagine Docker in Artifact Registry.
  • Utilizza qualsiasi immagine container disponibile pubblicamente da Docker Hub o da altri registry.

Eseguire il deployment di un container su una nuova istanza VM

Puoi eseguire il deployment di un contenitore su una nuova istanza VM utilizzando la console Google Cloud o Google Cloud CLI.

Console

L'esempio seguente esegue il deployment di un container da un'immagine Docker Nginx fornita da Google, https://gcr.io/cloud-marketplace/google/nginx1:latest, a un'istanza VM. Per utilizzare un'immagine Docker diversa, specifica l'immagine che preferisci negli esempi riportati di seguito.

  1. Vai alla pagina Crea un'istanza.

    Vai a Crea un'istanza

  2. Specifica i dettagli della VM.

  3. Nella sezione Contenitore, fai clic su Esegui il deployment del contenitore.

  4. Nella pagina Configura contenitore, specifica il nome di un'immagine contenitore e configura le opzioni per l'esecuzione del contenitore in base alle tue esigenze. Ad esempio, puoi specificare gcr.io/cloud-marketplace/google/nginx1:latest per l'immagine del contenitore.

  5. Continua con la procedura di creazione della VM.

gcloud

Utilizza il comando gcloud compute instances create-with-container:

gcloud compute instances create-with-container VM_NAME \
    --container-image DOCKER_IMAGE

Ad esempio, il seguente comando crea una nuova istanza VM denominata nginx-vm, che avvia ed esegue l'immagine Docker gcr.io/cloud-marketplace/google/nginx1:latest.

gcloud compute instances create-with-container nginx-vm \
    --container-image gcr.io/cloud-marketplace/google/nginx1:latest

Scopri di più sul comando gcloud compute instances create-with-container.

Devi sempre specificare un nome completo dell'immagine Docker quando utilizzi un'immagine pubblica di Docker Hub. Ad esempio, specifica il seguente nome immagine per eseguire il deployment di un'immagine container Apache:

docker.io/httpd:2.4

Aggiornamento di un contenitore su un'istanza VM

Puoi aggiornare un'immagine Docker e le opzioni di configurazione per eseguire il container su un'istanza VM utilizzando la console Google Cloud o Google Cloud CLI.

Quando aggiorni una VM che esegue un contenitore, Compute Engine esegue due passaggi:

  • Aggiorna la dichiarazione del contenitore nell'istanza. Compute Engine memorizza la dichiarazione del contenitore aggiornata nei metadati dell'istanza sotto la chiave dei metadati gce-container-declaration.
  • Interrompe e riavvia l'istanza per attivare la configurazione aggiornata, se l'istanza è in esecuzione. Se l'istanza è interrotta, aggiorna la dichiarazione del contenitore e mantiene l'istanza interrotta. L'istanza VM scarica la nuova immagine e avvia il container all'avvio della VM.

Console

  1. Vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic sul nome della VM da aggiornare.

  3. Nella pagina dei dettagli dell'istanza, fai clic su Modifica.

  4. Specifica la nuova immagine del contenitore e aggiorna le opzioni per l'esecuzione del contenitore in base alle esigenze.

  5. Per salvare le modifiche, fai clic su Salva e riavvia. Compute Engine salva le modifiche e riavvia automaticamente l'istanza per eseguire l'update. Dopo il riavvio, la VM scarica la nuova immagine e avvia il contenitore con la configurazione aggiornata.

gcloud

Aggiorna la dichiarazione del contenitore utilizzando il comando gcloud compute instances update-container. Ad esempio:

gcloud compute instances update-container nginx-vm \
    --container-image gcr.io/cloud-marketplace/google/nginx1:latest

Questo comando imposta l'immagine del contenitore su gcr.io/cloud-marketplace/google/nginx1:latest e riavvia l'istanza per applicare le modifiche. Puoi anche aggiornare qualsiasi proprietà descritta in Configurazione delle opzioni per l'esecuzione del contenitore aggiungendo i flag corrispondenti.

Dopo il riavvio, l'istanza scarica la nuova immagine del container e avvia il container con la nuova configurazione.

Deployment di un container in un gruppo di istanze gestite

Puoi eseguire il deployment di un container in un nuovo gruppo di istanze gestite (MIG) utilizzando la console Google Cloud o Google Cloud CLI seguendo questi passaggi:

  1. Crea un modello di istanza basato su un'immagine Docker.

  2. Crea un MIG dal nuovo modello di istanza.

Console

L'esempio seguente crea un modello di istanza che esegue il deployment di un container da un'immagine Docker Nginx (gcr.io/cloud-marketplace/google/nginx1:15) fornita da Google a un gruppo di istanze gestite. Per utilizzare altre immagini Docker, specifica l'immagine che preferisci anziché gcr.io/cloud-marketplace/google/nginx1:15 nel seguente esempio.

  1. Vai alla pagina Modelli di istanza.

    Vai a Modelli di istanza

  2. Per creare un modello di istanza, fai clic su Crea modello istanza.

  3. In Container, seleziona Esegui il deployment dell'immagine container.

  4. In Immagine contenitore, specifica il nome dell'immagine Docker e configura, se vuoi, le opzioni per l'esecuzione del contenitore. Ad esempio, puoi specificare gcr.io/cloud-marketplace/google/nginx1:15 per l'immagine del contenitore.

  5. Fai clic su Crea.

Crea un gruppo di istanze gestite che utilizza il nuovo modello di istanza.

gcloud

Crea un modello di istanza per l'esecuzione di immagini Docker utilizzando il comando gcloud compute instance-templates create-with-container:

gcloud compute instance-templates create-with-container TEMPLATE_NAME \
  --container-image DOCKER_IMAGE

Se vuoi, puoi anche configurare opzioni per l'esecuzione del container.

Ad esempio, il seguente comando crea un nuovo modello di istanza con nome nginx-template, che include informazioni sull'immagine Docker. Un'istanza VM creata da questo modello avvia ed esegue l'immagine Docker gcr.io/cloud-marketplace/google/nginx1:15 all'avvio della VM.

gcloud compute instance-templates create-with-container nginx-template \
    --container-image gcr.io/cloud-marketplace/google/nginx1:15

Crea un gruppo di istanze gestite utilizzando il nuovo modello di istanza.

Ora che hai un modello di istanza, puoi creare un gruppo di istanze gestite che lo utilizza. Ad esempio, per creare un MIG utilizzando gcloud CLI e il nginx-template appena creato, esegui il seguente comando:

gcloud compute instance-groups managed create example-group \
    --base-instance-name nginx-vm \
    --size 3 \
    --template nginx-template

Aggiornamento di un gruppo di istanze gestite che esegue un contenitore

Puoi aggiornare un gruppo di istanze gestite (MIG) per eseguire il deployment di una nuova versione di un'immagine Docker o di un'immagine di Container-Optimized OS.

Aggiornamento di un MIG a una nuova versione di un'immagine del contenitore

Puoi eseguire il deployment di una nuova versione di un'immagine Docker in un gruppo di istanze gestite utilizzando lo strumento di aggiornamento dei gruppi di istanze gestite in tre passaggi:

  1. Prepara una nuova immagine Docker per il deployment.
  2. Crea un modello di istanza basato sulla nuova immagine Docker nello stesso modo in cui crei un modello basato su container.
  3. Aggiorna un gruppo di istanze gestite al nuovo modello di istanza utilizzando Managed Instance Group Updater.

Aggiornamento di un gruppo di istanze gestite a una nuova versione dell'immagine Container-Optimized OS

Google aggiorna le immagini Container-Optimized OS regolarmente, e ti consigliamo di applicare questi aggiornamenti ai tuoi MIG containerizzati senza modificare l'immagine Docker. Puoi aggiornare un gruppo di istanze gestite a una nuova versione di un'immagine Container-Optimized OS utilizzando la console Google Cloud o Google Cloud CLI in due passaggi:

  1. Crea un modello di istanza basato sulla versione corrente dell'immagine Docker, nello stesso modo in cui crei un modello basato su container per un nuovo gruppo di istanze gestite. Per impostazione predefinita viene utilizzata la versione più recente supportata di un'immagine Container-Optimized OS.
  2. Aggiorna un gruppo di istanze gestite con il nuovo modello di istanza utilizzando Managed Instance Group Updater.

Connessione a un contenitore tramite SSH

Puoi connetterti a un contenitore su una VM utilizzando SSH. Utilizza l'interfaccia a riga di comando gcloud per eseguire gcloud compute ssh con il flag --container:

gcloud compute ssh VM_NAME --container CONTAINER_NAME

Sostituisci quanto segue:

  • VM_NAME: il nome dell'istanza VM
  • CONTAINER_NAME: il nome del contenitore

Scopri di più sul comando gcloud compute ssh e sui relativi argomenti.

Monitoraggio dei container su Compute Engine

Per monitorare le istanze che eseguono un'immagine Container-Optimized OS, utilizza l'agente Node Problem Detector, che comunica con Cloud Monitoring e genera report sulle metriche relative all'integrità. L'agente è integrato nelle immagini Container-Optimized OS a partire da Milestone 77.

Per attivare l'agente, nei container che utilizzano immagini con Milestone 88 o versioni successive, modifica la sezione dei metadati personalizzati e imposta google-monitoring-enabled su true.

Per scoprire altri modi per attivare il rilevatore problemi nodo, consulta Attivare il monitoraggio dello stato di integrità.

L'agente Node Problem Detector supporta le metriche nell'elenco delle metriche che iniziano con guest/.

Per interagire con le metriche raccolte dall'agente, vai a Metrics Explorer.

Visualizzazione dei log

Puoi visualizzare tre tipi di log relativi ai container:

  1. Log dell'agente di avvio, noti anche come log konlet. L'agente di avvio analizza la configurazione del contenitore ed esegue le attività per avviarlo su un'istanza VM di Compute Engine.

  2. I log degli eventi Docker registrano gli eventi dei container, inclusi gli eventi di avvio e interruzione dei container.

  3. I log del tuo contenitore includono i STDOUT delle app in esecuzione nel contenitore.

Visualizzazione dei log dell'agente di avvio

I log dell'agente di avvio sono disponibili nella console seriale, tramite il servizio di sistema journald incluso nell'immagine del sistema operativo e tramite Cloud Logging.

Visualizzazione dei log dell'agente di avvio nella console seriale

Console

  1. Vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona l'istanza VM per cui vuoi visualizzare i log dell'agente di avvio.

  3. In Log, fai clic su Porta seriale 1 (console) per visualizzare i log della console seriale.

    Registra la porta seriale 1.

gcloud

Utilizza il comando get-serial-port-output per visualizzare i log sulla porta seriale dell'istanza.

gcloud compute instances get-serial-port-output VM_NAME

Sostituisci VM_NAME con il nome dell'istanza VM.

Ad esempio, utilizza il seguente comando per visualizzare l'output della porta seriale di un'istanza VM denominata nginx-vm:

gcloud compute instances get-serial-port-output nginx-vm

Visualizzazione dei log dell'agente di avvio in journald

  1. Connettiti all'istanza con un contenitore utilizzando SSH.
  2. Esegui il comando sudo journalctl per visualizzare i log di avvio della VM e del container. Utilizza il seguente comando per filtrare i log dell'agente di avvio del contenitore (konlet).

    sudo journalctl -u konlet*
    

Visualizzazione dei log dell'agente di avvio in Logging

Console

  1. Vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona l'istanza VM per cui vuoi visualizzare i log dell'agente di avvio.

  3. In Log, fai clic su Cloud Logging per visualizzare i log di Cloud Logging.

    Registra la porta seriale 1.

  4. Inserisci un filtro di ricerca per recuperare i log dell'agente di avvio.

    resource.type="gce_instance"
    logName="projects/PROJECT_ID/logs/cos_system"
    jsonPayload.SYSLOG_IDENTIFIER="konlet-startup"
    jsonPayload._HOSTNAME="VM_NAME"
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto che contiene l'istanza
    • VM_NAME: il nome dell'istanza per cui vuoi recuperare i log

gcloud

Utilizza il comando gcloud logging read con un filtro appropriato per visualizzare i log dell'agente di avvio del contenitore.

gcloud logging read "resource.type=gce_instance AND \
    logName=projects/PROJECT_ID/logs/cos_system AND \
    jsonPayload.SYSLOG_IDENTIFIER=konlet-startup AND \
    jsonPayload._HOSTNAME=VM_NAME"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto che contiene l'istanza
  • VM_NAME: il nome dell'istanza per cui vuoi recuperare i log

Ad esempio, utilizza il seguente comando per visualizzare gli ultimi 10 log dell'agente di avvio in Log per un'istanza VM denominata nginx-vm che esegue COS 70 ed esiste in my-project.

gcloud logging read "resource.type=gce_instance AND \
    logName=projects/my-project/logs/cos_system AND \
    jsonPayload.SYSLOG_IDENTIFIER=konlet-startup AND \
    jsonPayload._HOSTNAME=nginx-vm" \
    --limit 10

Visualizzazione dei log degli eventi Docker

Puoi visualizzare i log eventi di Docker in journald e in Cloud Logging.

Visualizzazione dei log eventi Docker in journald

  1. Connettiti all'istanza con un contenitore tramite SSH.
  2. Esegui il comando sudo journalctl con il seguente filtro per visualizzare i log degli eventi Docker.

    sudo journalctl -u docker-events-collector
    

Visualizzazione dei log eventi Docker in Logging

Console

  1. Vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona l'istanza VM per cui vuoi visualizzare i log dell'agente di avvio.

  3. In Log, fai clic su Cloud Logging per visualizzare i log di Cloud Logging.

    Registra la porta seriale 1.

  4. Inserisci il seguente filtro di ricerca per recuperare i log eventi di Docker.

    resource.type="gce_instance"
    logName="projects/PROJECT_ID/logs/cos_system"
    jsonPayload._HOSTNAME="VM_NAME"
    jsonPayload.SYSLOG_IDENTIFIER="docker"
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto che contiene l'istanza
    • VM_NAME: il nome dell'istanza per cui vuoi recuperare i log

gcloud

Utilizza il comando gcloud logging read con un filtro appropriato per visualizzare i log eventi di Docker.

gcloud logging read "resource.type=gce_instance AND \
    logName=projects/PROJECT_ID/logs/cos_system AND \
    jsonPayload._HOSTNAME=VM_NAME AND \
    jsonPayload.SYSLOG_IDENTIFIER=docker"

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto che contiene l'istanza
  • VM_NAME: il nome dell'istanza per cui vuoi recuperare i log

Ad esempio, utilizza il seguente comando per visualizzare gli ultimi 10 log eventi Docker in Logging per un'istanza VM denominata nginx-vm che è in esecuzione su COS 70 ed esiste in my-project.

gcloud logging read "resource.type=gce_instance AND \
    logName=projects/my-project/logs/cos_system AND \
    jsonPayload._HOSTNAME=nginx-vm AND \
    jsonPayload.SYSLOG_IDENTIFIER=docker" \
    --limit 10

Visualizzazione dei log dei container

Console

  1. Vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona l'istanza VM per cui vuoi visualizzare i log dell'agente di avvio.

  3. In Log, fai clic su Cloud Logging per visualizzare i log di Cloud Logging.

    Registra la porta seriale 1.

  4. La pagina Cloud Logging viene caricata con un filtro di ricerca predefinito. Copia il valore per resource.labels.instance_id. Lo utilizzerai in un secondo momento.

  5. Aggiorna il filtro di ricerca per recuperare i log del contenitore.

    resource.type="gce_instance"
    logName="projects/PROJECT_ID/logs/cos_containers"
    resource.labels.instance_id="INSTANCE_ID"
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto che contiene l'istanza
    • INSTANCE_ID: l'ID dell'istanza per la quale vuoi recuperare i log

gcloud

Utilizza il comando gcloud logging read per visualizzare i log dei container.

  1. Determina l'ID dell'istanza per cui vuoi recuperare i log:

    gcloud compute instances describe VM_NAME \
       --zone ZONE \
       --format="value(id)"
    

    Sostituisci quanto segue:

    • VM_NAME: il nome dell'istanza per cui vuoi recuperare i log
    • ZONE: la zona in cui si trova l'istanza
  2. Utilizza il comando e il filtro seguenti per visualizzare i log del contenitore dell'istanza.

    gcloud logging read "resource.type=gce_instance AND \
        logName=projects/PROJECT_ID/logs/cos_containers AND \
        resource.labels.instance_id=INSTANCE_ID"
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto che contiene l'istanza.
    • INSTANCE_ID: l'ID dell'istanza.

    Ad esempio, utilizza il seguente comando per visualizzare gli ultimi 10 log dei container in Cloud Logging per un'istanza VM che esegue COS 70, che esiste in my-project e che ha un ID istanza 555123456789012345.

    gcloud logging read "resource.type=gce_instance AND \
        logName=projects/my-project/logs/cos_containers AND \
        resource.labels.instance_id=555123456789012345" \
        --limit 10
    

Specifica di immagini o famiglie di immagini ottimizzate per i container

Per impostazione predefinita, le istanze VM o i modelli di istanza containerizzate vengono create per utilizzare l'immagine ottimizzata per i container supportata più recente. L'immagine appartiene al progetto cos-cloud.

Puoi sostituire questo valore predefinito con un'altra immagine del progetto cos-cloud. Per informazioni sulle famiglie di immagini disponibili e sui relativi attributi, consulta Scegliere la versione corretta di Container-Optimized OS.

Ad esempio, dopo aver stabilito quale immagine utilizzare, nell'gcloud CLI specifica il flag --image per eseguire l'override dell'immagine ottimizzata per i container predefinita o il flag --image-family per scegliere l'immagine più recente della famiglia specificata al momento della creazione della VM.

Il seguente esempio crea un'istanza VM containerizzata che utilizza l'immagine più recente della famiglia di immagini cos-dev:

gcloud compute instances create-with-container nginx-vm \
    --image-family cos-dev \
    --image-project cos-cloud \
    --container-image gcr.io/cloud-marketplace/google/nginx1:1.15

Configurazione delle regole del firewall

Le VM containerizzate avviano i container la cui rete è impostata su modalità host. Un contenutore condivide lo stack di rete dell'host e tutte le interfacce dell'host sono disponibile per il contenitore.

Per impostazione predefinita, le regole firewall di Google Cloud bloccano tutte le connessioni in entrata a un'istanza VM e consentono tutte le connessioni in uscita da un'istanza VM.

Crea regole firewall per consentire le connessioni in entrata all'istanza e quindi al contenitore.

Configurazione delle opzioni per l'esecuzione di un container

Per eseguire il container, puoi configurare le seguenti opzioni:

  • Specifica un criterio di riavvio del contenitore.
  • Sostituisci il contenitore ENTRYPOINT (comando predefinito da eseguire all'avvio del contenitore).
  • Passa gli argomenti al comando ENTRYPOINT del contenitore.
  • Esegui un container in una modalità con privilegi.
  • Monta una directory dell'host o tmpfs come volume di dati all'interno del contenitore.
  • Imposta le variabili di ambiente.
  • Alloca un buffer per STDIN nel runtime del container.
  • Alloca uno pseudo-TTY.

Scopri di più sulla configurazione delle opzioni per l'esecuzione del container.

Passaggi successivi