Questo esempio completo descrive come creare un deployment con una macchina virtuale che utilizza un'immagine ottimizzata per i container. Per ulteriori informazioni sull'utilizzo dei container con Compute Engine, consulta Immagini Compute Engine ottimizzate per i container.
Questa procedura dettagliata descrive come:
- Crea un manifest del contenitore semplice.
- Crea una configurazione e un modello che utilizzano un'immagine container.
- Esegui il deployment delle risorse e verifica che sia andato a buon fine.
Creare un manifest del contenitore
Per utilizzare i container, devi definire un manifest del contenitore. Il file manifest descrive proprietà come l'immagine del container, i container da avviare, i comandi da eseguire all'avvio e le porte da attivare.
Crea un file denominato container_manifest.yaml
con i seguenti contenuti:
Questo manifest crea un container denominato semplice-echo che utilizza l'immagine container Hello Application e avvia un server echo che ascolta sulla porta 8080.
Crea un modello e una configurazione
Successivamente, crea un modello che avvii un'istanza di macchina virtuale con un'immagine ottimizzata per i contenitori. Crea un file denominato container_vm.[jinja|py]
con i seguenti contenuti:
Jinja
Python
Crea il file dello schema corrispondente, che applica la struttura del modello:
Jinja
Python
Tieni presente che in questo modello sono definiti diversi parametri, tra cui:
- Le variabili di ambiente
deployment
,name
eproject
. Deployment Manager compila automaticamente queste variabili senza ulteriore intervento da parte tua. - Le proprietà
zone
,containerImage
econtainerManifest
, che verranno definite nella configurazione.
Crea un file di configurazione denominato container_vm.yaml
con il seguente contenuto:
Jinja
Python
Assicurati di sostituire ZONE_TO_RUN
con la zona che preferisci per la macchina virtuale. Tieni presente che il file ha definito anche l'immagine del contenitore da utilizzare e il manifest del contenitore che hai creato in precedenza.
Esegui il deployment dell'istanza della macchina virtuale
Infine, esegui il deployment dell'istanza della macchina virtuale utilizzando Google Cloud CLI:
gcloud deployment-manager deployments create my-container-deployment \
--config container_vm.yaml
Una volta creato il deployment, puoi visualizzarne i dettagli. Ad esempio:
$ gcloud deployment-manager deployments describe my-container-deployment
creationTimestamp: '2015-04-02T12:24:31.645-07:00'
fingerprint: ''
id: '8602410885927938432'
manifest: https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/my-container-deployment/manifests/manifest-1428002671645
name: my-container-deployment
state: DEPLOYED
resources:
NAME TYPE ID UPDATE_STATE ERRORS
my-container-deployment-my-container-vm compute.v1.instance 3775082612632070557 COMPLETED -
Verifica che l'istanza sia in esecuzione
Per verificare l'avvio dell'istanza del contenitore, visita l'indirizzo IP esterno della macchina virtuale nel browser, dove dovrebbe essere stampato hello world
:
Aggiungi una regola firewall di Compute Engine per eseguire query sul traffico sulla macchina virtuale tramite la porta 8080:
gcloud compute firewall-rules create allow-8080 --allow tcp:8080
Ottieni l'indirizzo IP esterno dell'istanza:
$ gcloud compute instances describe my-container-deployment-my-container-vm ... name: my-container-vm-my-container-deployment networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat natIP: 104.197.8.138 type: ONE_TO_ONE_NAT name: nic0 network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default networkIP: 10.240.97.220 scheduling: automaticRestart: true onHostMaintenance: MIGRATE selfLink: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/my-container-deployment-my-container-vm status: RUNNING tags: fingerprint: 42WmSpB8rSM= zone: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a ...
In questo caso, l'IP esterno è
104.197.8.138
.In una finestra del browser, inserisci l'IP esterno e la porta 8080 nella barra del browser. Ad esempio,
104.197.8.138:8080
.Se l'operazione è andata a buon fine, dovresti visualizzare un messaggio
hello world
.
(Facoltativo) Elimina il deployment
Se vuoi risparmiare sui costi e non vuoi più o non hai più bisogno del tuo deployment, eliminalo.
gcloud deployment-manager deployments delete my-container-deployment
Passaggi successivi
Scopri di più su Deployment Manager nelle guide complete per gli utenti o tramite l'API.
Prova altri tutorial:
- Crea un'applicazione Logbook con bilanciamento del carico di rete.
- Crea un'applicazione Logbook con bilanciamento del carico HTTP.