In questo esercizio, l'obiettivo è configurare un Ingress Controller Nginx all'interno dell'istanza Kubernetes e assicurarsi che l'applicazione Flask, installata tramite Helm, sia accessibile tramite un URL personalizzato: http://formazionesou.local
.
-
Installazione di Nginx Ingress Controller: Abbiamo equipaggiato il cluster Kubernetes con un Nginx Ingress Controller, utilizzando i comandi di Kubernetes e Minikube.
-
Configurazione dell'Ingress: Abbiamo aggiunto un Ingress resource nel nostro cluster per instradare il traffico HTTP al nostro servizio Flask, esponendolo tramite il dominio
formazionesou.local
. -
Configurazione del file
ingress.yaml
: Il fileingress.yaml
è già presente nella repository all'interno della cartella/charts/templates
del progettoformazione_sou_k8s
. Questo file configura l'Ingress per il nostro servizio e lo collega all'Ingress Controller Nginx. -
Modifica del file
/etc/hosts
: Per far sì che il dominioformazionesou.local
punti correttamente all'IP del nodo Minikube, è stato aggiunto un mapping statico nel file/etc/hosts
del sistema operativo. -
Verifica accesso tramite HTTP: Una volta configurato l'Ingress, è possibile accedere al servizio Flask via HTTP all'indirizzo
http://formazionesou.local
, che restituisce la risposta "hello world" fornita dall'applicazione Flask.
ingress.yaml
: Il file di configurazione Ingress per il servizio Flask è situato nella directory/charts/templates
del progetto. Questo file definisce come il traffico HTTP deve essere instradato verso il servizio Flask.
-
Verifica l’Ingress Controller: Controlla che l’Ingress Controller Nginx sia correttamente avviato e in esecuzione nel namespace
ingress-nginx
:kubectl get pods -n ingress-nginx
-
Verifica l’accesso tramite HTTP: Una volta configurato l’Ingress, puoi verificare l’accesso al servizio tramite HTTP con il comando
curl
:curl http://formazionesou.local
Questo comando dovrebbe restituire la risposta “hello world” dall’applicazione Flask.
- Configurazione del DNS locale:
Se il dominio
formazionesou.local
non è risolvibile, aggiungi il mapping nel file/etc/hosts
:vim /etc/hosts
Aggiungi la riga:
<minikube ip> formazionesou.local
Questo mapping permette di risolvere formazionesou.local
all’indirizzo IP del nodo Minikube.
Questo esercizio ha dimostrato come equipaggiare un cluster Kubernetes con un Nginx Ingress Controller e come configurare l’accesso esterno a un’applicazione Flask tramite Ingress, utilizzando un dominio personalizzato.
Il lavoro include la configurazione di un file ingress.yaml
e la modifica del file /etc/hosts
per risolvere il dominio localmente, rendendo il servizio Flask accessibile tramite http://formazionesou.local
.