Alla scoperta di Kubernetes con Play-with-k8s

Play with Kubernetes (aka Play-with-k8s) è un servizio molto utile per chi inizia a muovere i primi passi con il noto orchestratore di container, ma anche per fare dei test. Il tutto a costo zero.

Per chi volesse un’infarinatura sui concetti di base di Kubernetes è disponibile una piccola guida.

L’unico prerequisito è un account su Docker Hub, anche questo free.

Dopo aver effettuato il login si ha a disposizione un cluster in cui è possibile aggiungere fino ad un massimo di 5 nodi che possiamo distribuire tra master e worker.

kubernetes1

L’unica limitazione è la breve durata della sessione, limitata a sole (si fa per dire) quattro ore.

Inoltre, in alcuni momenti di picco, il servizio potrebbe non essere disponibile.

All’avvio aggiungiamo il primo nodo che possiamo inizializzare come master eseguendo

kubeadm init --apiserver-advertise-address $(hostname -i)

kubernetes2

Abilitiamo il networking con

kubectl apply -n kube-system -f \
"https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 |tr -d '\n')"

kubernetes3

Siamo pronti ad aggiungere i nodi worker digitando in ciascuno di essi il comando riportato al termine della procedura di inizializzazione del master.

Nel nostro caso si tratta di

kubeadm join 192.168.0.8:6443 --token ow4hov.gpjxlhc9wythyzt6 \
--discovery-token-ca-cert-hash sha256:912be97afc61d37d506cacc8bdb9864d12690723e9a7a90ad6cdfca5f9438f2c

kubernetes6

kubernetes7

Dopo aver ripetuto l’operazione con gli altri nodi possiamo verificare lo stato del cluster digitando

kubectl get nodes

kubernetes8

Proviamo a creare un deployment di prova eseguendo sul nodo master il comando

kubectl create deployment nginx --image=nginx

Verifichiamo che tutto sia corretto visualizzando la lista dei deployment

kubectl get deployments

Possiamo anche dare un’occhiata più da vicino con

kubectl describe deployment nginx

Il pod appena creato non è accessibile quindi creiamo un service di tipo NodePort indicando come porta la 80 esposta dal container nginx

kubectl create service nodeport nginx --tcp=80:80

Ricordiamo che i vari pod sono in esecuzione sui worker e che nel nostro caso abbiamo attiva una sola istanza.

Prima di tutto visualizziamo la lista dei servizi in modo da individuare la porta a cui è raggiungibile il container con

kubectl get services

kubernetes11

Verifichiamo che tutto funzioni correttamente contattando il nodo 2 con indirizzo 192.168.0.7 e specificando la porta 31292 su cui è in esecuzione nginx

[node1 ~]$ curl 192.168.0.7:31292

kubernetes13

Per ora è tutto. Abbiamo un cluster Kubernetes nuovo di zecca, a costo zero con cui potremo fare i nostri prossimi esperimenti a partire dai vari file di configurazione per deployment, service, ingress ecc.

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Utilizzando il sito, accetti l'invio dei cookies da parte nostra. Maggiori informazioni

Questo sito utilizza i cookies per fornire la migliore esperienza di navigazione possibile. Continuando ad utilizzarlo senza modificare le impostazioni o cliccando su "Accetta" acconsenti al loro utilizzo.

Chiudi