Esegui il deployment di un'app in un cluster GKE
In questa guida rapida, esegui il deployment di un semplice server web applicazione containerizzata in un cluster Google Kubernetes Engine (GKE). Scoprirai come creare un cluster e come eseguire il deployment dell'applicazione nel cluster in modo che gli utenti possano accedervi.
Prima di leggere questa pagina, assicurati di conoscere Kubernetes.
Prima di iniziare
Per abilitare l'API Kubernetes Engine, segui questi passaggi:- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry and Google Kubernetes Engine APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry and Google Kubernetes Engine APIs.
Avvia Cloud Shell
In questo tutorial utilizzerai Cloud Shell, che è un ambiente shell per la gestione delle risorse in hosting in Google Cloud.
Cloud Shell include lo strumento a riga di comando Google Cloud CLI e kubectl. gcloud CLI fornisce la riga di comando
per Google Cloud e kubectl
fornisce la riga di comando
per eseguire 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:
Una sessione di Cloud Shell si apre in un frame nella parte inferiore della console.
Utilizzerai questa shell per eseguire i comandi gcloud
e kubectl
.
Prima di eseguire i comandi, imposta il progetto predefinito in Google Cloud CLI
utilizzando il seguente comando:
gcloud config set project PROJECT_ID
Sostituisci PROJECT_ID
con il tuo 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 integrarli nel 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 interagiscono 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 eseguirvi il deployment di un'applicazione containerizzata. Per questa guida rapida, puoi eseguire il deployment della nostra applicazione web di esempio hello-app
.
GKE usa 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 Service 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 il seguente comando:
kubectl create deployment hello-server \
--image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
Questo comando Kubernetes,
kubectl create deployment
,
crea un deployment denominato hello-server
. Lo spazio di archiviazione
Pod
esegue l'immagine container hello-app
.
In questo comando:
--image
specifica l'immagine container di cui eseguire il deployment. In questo caso, estrae l'immagine di esempio da un Artifact Registry repositoryus-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 viene usata l'immagine con il taglatest
predefinito.
Esporre il deployment
Dopo aver eseguito il deployment dell'applicazione, devi esporla a internet in modo che gli utenti possano accedervi. Puoi esporre la tua applicazione creando un servizio, ossia una risorsa Kubernetes che espone l'applicazione al traffico esterno.
Per esporre l'applicazione, esegui questo comando
kubectl expose
:
kubectl expose deployment hello-server \
--type LoadBalancer \
--port 80 \
--target-port 8080
Il passaggio del flag --type LoadBalancer
crea un ambiente Compute Engine
con il bilanciatore del carico più alto
per il tuo container. Il flag --port
inizializza la porta pubblica 80 su internet e il flag --target-port
instrada il traffico alla porta 8080 dell'applicazione.
I bilanciatori del carico vengono fatturati in base ai prezzi dei bilanciatori del carico di Compute Engine.
Ispeziona e visualizza l'applicazione
Esamina 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 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 con GKE.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi per le 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 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 composta da due file:
main.go
e Dockerfile
.
hello-app
è pacchettizzato come
immagine container
Docker. Le immagini container vengono archiviate in qualsiasi registry di immagini Docker, come Artifact Registry. Ospitiamo hello-app
in un repository Artifact Registry su
us-docker.pkg.dev/google-samples/containers/gke/hello-app
.
main.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!". per creare un nuovo messaggio email.
Dockerfile
Dockerfile
descrive l'immagine che vuoi creare con Docker, incluse tutte le risorse e le dipendenze, e specifica quale porta di rete dovrebbe essere esposta dall'applicazione. Per ulteriori informazioni sul funzionamento di questo file, vedi
Riferimento Dockerfile
nella documentazione Docker.
Passaggi successivi
- Scopri di più sulla creazione di cluster.
- Scopri di più su Kubernetes.
- Scopri come pacchettizzare, ospitare ed eseguire il deployment di una semplice applicazione di server web.
- Esegui il deployment di un'applicazione Kubernetes con Cloud Code per VS Code o Cloud Code per IntelliJ.
- Scopri come eseguire il replatforming delle applicazioni Linux in container.
Provalo
Se non conosci 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