Esegui il deployment di un'app in un cluster GKE
In questa guida rapida, eseguirai il deployment di una semplice applicazione containerizzata del server web in un cluster Google Kubernetes Engine (GKE). Imparerai a creare un cluster e a eseguire il deployment dell'applicazione nel cluster in modo che gli utenti possano accedervi.
Questa guida rapida presuppone una conoscenza di base di Kubernetes.
Prima di iniziare
Segui questi passaggi per abilitare l'API Kubernetes Engine:- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Artifact Registry and Google Kubernetes Engine.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Artifact Registry and Google Kubernetes Engine.
Avvia Cloud Shell
In questo tutorial utilizzerai Cloud Shell, un ambiente shell per la gestione delle risorse ospitate su Google Cloud.
In Cloud Shell sono preinstallati lo strumento a riga di comando Google Cloud CLI e kubectl. L'interfaccia a riga di comando gcloud fornisce l'interfaccia a riga di comando principale per Google Cloud, mentre kubectl
fornisce l'interfaccia a riga di comando principale per l'esecuzione dei comandi sui cluster Kubernetes.
Avvia Cloud Shell:
Vai alla console Google Cloud.
Nell'angolo in alto a destra della console, fai clic sul pulsante Attiva Cloud Shell:
Si apre una sessione di Cloud Shell all'interno di un frame più in basso nella console.
Utilizza questa shell per eseguire i comandi gcloud
e kubectl
.
Prima di eseguire i comandi, imposta il progetto predefinito in Google Cloud CLI utilizzando questo comando:
gcloud config set project PROJECT_ID
Sostituisci PROJECT_ID
con l'ID progetto.
crea un cluster GKE
Un cluster è costituito da almeno una macchina del piano di controllo del cluster e da più macchine worker denominate nodi. I nodi sono istanze di macchine virtuali (VM) Compute Engine che eseguono i processi Kubernetes necessari per renderle parte del cluster. Puoi eseguire il deployment delle applicazioni sui cluster e le applicazioni vengono eseguite sui nodi.
Crea un cluster Autopilot denominato hello-cluster
:
gcloud container clusters create-auto hello-cluster \
--location=us-central1
recupera le credenziali di autenticazione per il cluster
Dopo aver creato il cluster, devi ottenere le credenziali di autenticazione per interagire con il cluster:
gcloud container clusters get-credentials hello-cluster \
--location us-central1
Questo comando configura kubectl
in modo che utilizzi il cluster che hai creato.
Esegui il deployment di un'applicazione nel cluster
Ora che hai creato un cluster, puoi eseguire il deployment di un'applicazione containerizzata. Per questa guida rapida, puoi eseguire il deployment della nostra applicazione web di esempio, hello-app
.
GKE utilizza gli oggetti Kubernetes per creare e gestire le risorse del cluster. Kubernetes fornisce l'oggetto Deployment per eseguire il deployment di applicazioni stateless come i server web. Gli oggetti di servizio definiscono le regole e il bilanciamento del carico per l'accesso all'applicazione da Internet.
Crea il deployment
Per eseguire hello-app
nel cluster, devi eseguire il deployment dell'applicazione eseguendo questo comando:
kubectl create deployment hello-server \
--image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
Questo comando di Kubernetes, kubectl create deployment
, crea un deployment denominato hello-server
. Il pod del deployment esegue l'immagine container hello-app
.
In questo comando:
--image
specifica un'immagine container di cui eseguire il deployment. In questo caso, il comando estrae l'immagine di esempio da un repository Artifact Registry,us-docker.pkg.dev/google-samples/containers/gke/hello-app
.:1.0
indica la versione specifica dell'immagine di cui eseguire il pull. Se non specifichi una versione, viene utilizzata l'immagine con il tag predefinitolatest
.
Esponi il deployment
Dopo aver eseguito il deployment dell'applicazione, devi esporla a internet per consentire agli utenti di accedervi. Puoi esporre la tua applicazione creando un servizio, una risorsa Kubernetes che espone la tua applicazione al traffico esterno.
Per esporre la tua applicazione, esegui questo comando kubectl expose
:
kubectl expose deployment hello-server \
--type LoadBalancer \
--port 80 \
--target-port 8080
La trasmissione del flag --type LoadBalancer
crea un bilanciatore del carico di Compute Engine per il container. Il flag --port
inizializza la porta pubblica 80 su Internet, mentre il flag --target-port
instrada il traffico alla porta 8080 dell'applicazione.
I bilanciatori del carico vengono fatturati in base ai prezzi del bilanciatore del carico di Compute Engine.
Ispeziona e visualizza l'applicazione
Ispeziona i pod in esecuzione utilizzando
kubectl get pods
:kubectl get pods
Dovresti vedere un pod
hello-server
in esecuzione sul tuo cluster.Controlla il servizio
hello-server
utilizzandokubectl get service
:kubectl get service hello-server
Dall'output di questo comando, copia l'indirizzo IP esterno del servizio dalla colonna
EXTERNAL-IP
.Visualizza l'applicazione dal tuo browser web utilizzando l'indirizzo IP esterno con la porta esposta:
http://EXTERNAL_IP
Hai appena eseguito il deployment di un'applicazione web containerizzata in GKE.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi:
Elimina il servizio dell'applicazione eseguendo
kubectl delete
:kubectl delete service hello-server
Questo comando elimina il bilanciatore del carico di Compute Engine che hai creato quando hai esposto il deployment.
Elimina il cluster eseguendo
gcloud container clusters delete
:gcloud container clusters delete hello-cluster \ --location us-central1
Facoltativo: revisione del codice hello-app
hello-app
è una semplice applicazione server web costituita da due file:
main.go
e un Dockerfile
.
hello-app
è pacchettizzato come immagine container Docker. Le immagini container sono archiviate in qualsiasi registro di immagini Docker,
ad esempio Artifact Registry. Ospitiamo hello-app
in un repository Artifact Registry all'indirizzo us-docker.pkg.dev/google-samples/containers/gke/hello-app
.
principale.go
main.go
è un'implementazione del server web scritta nel linguaggio di programmazione Go.
Il server risponde a qualsiasi richiesta HTTP con un messaggio "Hello world!".
Dockerfile
Dockerfile
descrive l'immagine che vuoi creare con Docker, incluse tutte le risorse e le dipendenze e specifica quale porta di rete deve essere esposta dall'app. Per ulteriori informazioni su come funziona questo file, consulta il riferimento Dockerfile nella documentazione relativa a Docker.
Passaggi successivi
- Scopri di più sulla creazione dei cluster.
- Scopri di più su Kubernetes.
- Leggi la documentazione di riferimento di
kubectl
. - Scopri come pacchettizzare, ospitare ed eseguire il deployment di una semplice applicazione server web.
- Crea un'applicazione Guestbook con Redis e PHP.
- Esegui il deployment di WordPress su GKE con dischi permanenti e Cloud SQL.
- Esegui il deployment di un'applicazione Kubernetes con Cloud Code for VS Code o Cloud Code for IntelliJ.
Provalo
Se non hai mai utilizzato Google Cloud, crea un account per valutare le prestazioni di GKE in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
Prova GKE gratuitamente