Come preparare un Cluster Kubernetes

Se hai una passione per la tecnologia e l’intricato mondo dei cluster, preparati a intraprendere un viaggio affascinante nel mondo di Kubernetes con un tocco di divertimento e un pizzico di magia IT. In questo progetto, abbiamo trasformato 6 Raspberry Pi 4B in un potente cluster Kubernetes. Preparati a tuffarti nel futuro dell’orchestrazione dei container!

Ingredienti per la preparazione di un Cluster (dosi per 6 nodi):

  1. 6 Raspberry Pi 4B: I nostri eroi principali, pronti a diventare nodi di calcolo nel nostro cluster.
  2. 6 PoE HAT per Raspberry: Il componete aggiuntivo da inserire sui nostri eroi.
  3. Switch POE a 8 Porte: Il nostro arsenale segreto per alimentare e connettere il tutto.
  4. Router: Il mago di rete che ci aiuterà a creare una subnet interna.
  5. Cavi Ethernet: gli spaghetti della rete
  6. Schede microSD da 128 GB
  7. Un case: Il nostro pentolone dove inserire tutti i nostri ingredienti!
  8. Tanto entusiasmo e creatività: Il nostro tocco segreto per rendere tangibile questo progetto straordinario!
INgredienti Cluster

1# Configurazione del Router (Preparazione del Piano di Lavoro)

Collegare il Router (il piano delle preparazioni): Connettiti all’interfaccia di amministrazione del router. Configura una subnet interna per i Raspberry Pi. Noi per il nostro progetto useremo “10.10.10.0/24”.

2# Preparare i Raspberry Pi

Preparare l’immagine del Sistema Operativo (Mise en Place): Scarica e installa Raspberry Pi Imager per semplificare questo passaggio. Collega una ad una le microSD al tuo PC, apri Raspberry Pi Imager, scegli Raspberry Pi OS Lite (64 Bit) tra gli OS, scegli la scheda SD e dalle impostazioni scegli il nome dell’host e abilita l’SSH. Infine, inserisci la scheda SD sul rispettivo Raspberry Pi.

Collegamento (Preparazione degli Ingredienti): Collega il router allo switch in modo da fornire il collegamento ad internet a tutti i nostri nodi. Monta il modulo PoE HAT su ogni Raspberry e alimentalo collegandolo allo switch PoE. Se si ha un router dual band, ci si può collegare tramite il WiFi generato dal router, altrimenti collegare un cavo ethernet direttamente dal pc a router.

Per tenere insieme il tutto, abbiamo stampato un case con la nostra stampante 3D.

3# Installazione di Kubernetes (Inizia a Cuocere)

Preparazione dei Raspberry (Accendi i fornelli): Dopo esserti collegato in SSH a uno dei Raspberry. Puoi iniziare con la preparazione del tuo nodo (ovviamente questo passaggio va fatto su tutti i tuoi nodi):

  1. Come primo passo ti consiglio di aggiungere il tuo nome utente al gruppo “sudo”, consentendo così all’utente di eseguire comandi con privilegi amministrativi senza dover accedere con l’utente “root”.
  2. Rimuovi i pacchetti relativi al servizio DHCP, questa operazione è utile per configurare manualmente le impostazioni di rete e rendere tutto statico, come faremo successivamente.
  3. Modifica il file di configurazione del Raspberry Pi (config.txt) per disabilitare il WiFi e il Bluetooth. Così da tenere unicamente l’interfaccia Ethernet collegata allo Switch.
  4. Crea i file di configurazione per le interfaccie WiFi “wlan0”, Ethernet “eth0” e loopback (lo)così che l’interfaccia WLAN venga gestita manualmente e la configurazione sia personalizzata sull’interfaccia Ethernet.
  5. Dopo aver apportato le modifiche alle configurazioni di rete, è importante riavviare il servizio networking per applicarle correttamente.
  6. Infine disabilita e rimuovi lo swap dal Raspberry Pi, poiché Kubernetes richiede una configurazione specifica per funzionare correttamente.

Installazione di una Container Runtime (Preparazione Antipasti): Ovviamente hai bisogno di installare una Container Runtime in ogni nodo del tuo Cluster, di CR ne esistono molte, potresti scegliere quella che più preferisci dalla documentazione di Kubernetes. Noi per la nostra configurazione abbiamo usato ContainerD.

Installazione di Kubernetes (Primi piatti): Configuriamo il kernel del Raspberry Pi in modo da prepararlo all’esecuzione di Kubernetes, poi installiamo finalmente Kubernetes seguendo per bene la documentazione ufficiale. Ricorda che Kubernetes va installato su tutti i Raspberry, ma non su tutti i nodi ci servirà

Nel cuore della preparazione, abbiamo eseguito incantesimi per configurare il kernel del Raspberry Pi, installato Containerd come ingrediente chiave, e infine portato Kubernetes alla temperatura giusta. La nostra cucina digitale stava è esplosa di sapore e potenza.

4# Configurazione di Kubectl (Secondi piatti)

  • Configurare Kubectl (Preparazione Scondi Piatti): Per poter accedere e inviare i comandi al nostro cluster anche esternamente, dobbiamo installare kubectl sulla nostra macchina host, installiamolo sempre seguendo la documentazione di Kubernetes.
  • Copiare il file di configurazione (Farcitura): Dalla tua macchina esegui il comando scp e copia il file di configurazione del cluster dal nodo di controllo principale al percorso “~/.kube/config”.

Abbiamo completato il nostro banchetto digitale configurando kubectl sul nostro computer host e copiando il file di configurazione del cluster. Ogni Raspberry Pi è stato coinvolto nella festa, e il nostro cluster è pronto a servire.

5# Unire i nodi (Organizziamo la cucina)

Unire i nodi worker (i Commis ): Segui le istruzioni generate da “kubeadm init” sul control plane per unire gli aiutanti chef al cluster. Il comando sarà qualcosa del genere:

				
					kubeadm join 10.24.0.0:6443 --token <TOKEN> \
        --discovery-token-ca-cert-hash sha256:<HASH>

				
			

Unire i nodi control plane (gli Chef): Per unire altri control plane al nostro cluster, (ricordo che non possono essere MAI pari ! Come dice la documentazione), dobbiamo fare la stessa cosa che abbiamo fatto per i nodi worker, ma prendendo il comando per i control palne che sarà:

				
					kubeadm join 10.10.10.20:6443 --token <TOKEN> \
        --discovery-token-ca-cert-hash sha256:<HASH> \
        --control-plane --certificate-key <KEY>

				
			

Unendo i nodi, abbiamo creato una squadra di chef digitali pronti a cucinare qualsiasi piatto tecnologico. Control plane e nodi worker si sono uniti come commis e chef, pronti a servire il meglio.

6# Verifica il Cluster (La Degustazione)

Assaporare il Cluster (Il Primo Morso): Esegui “kubectl get nodes” sul tuo computer per assicurarti che i nodi siano pronti per servire le tue app. Se hai seguito passo per passo la ricetta e dosato per bene gli ingredienti otterrai una cosa del genere:

				
					NAME             STATUS   ROLES           AGE   VERSION
controlplane01   Ready    control-plane   81m   v1.26.*
controlplane02   Ready    control-plane   40m   v1.26.*
controlplane03   Ready    control-plane   52m   v1.26.*
worker01         Ready    <none>          56s   v1.26.*
worker02         Ready    <none>          62s   v1.26.*
worker03         Ready    <none>          71s   v1.26.*
				
			

Conclusione

In questo viaggio culinario, abbiamo creato una deliziosa pietanza tecnologica, ma la nostra avventura nella cucina IT è appena iniziata. Il prossimo articolo ci condurrà attraverso nuove ricette e trucchi da chef per svelare i segreti più profondi della tecnologia. Mantieni alta la tua passione e la tua creatività, perché ci aspetta un mondo di scoperte e nuove avventure nella cucina IT. Resta sintonizzato e preparati per il prossimo capitolo di questa avventura culinaria digitale!

Condividi l’articolo!!


Scopri i nostri corsi!

Formazione Cloud-Native in presenza o da remoto
Picture of Raffaele Disabato

Raffaele Disabato

VMware vSphere 8.x Professional
Fin da piccolo, ho coltivato una profonda passione per l’informatica. Ho dedicato tempo ed energia all’esplorazione di single-board computer come il Raspberry Pi e all’arte della stampa 3D, trasformando idee digitali in oggetti fisici tangibili. Mi piace leggere riviste e tenermi sempre informato sulla sicurezza informatica, ricercando sempre nuovi modi per proteggere i dati.
Amo il lato creativo e tecnico del settore IT. La mia missione è condividere le mie conoscenze e aiutare gli altri a esplorare il mondo del DevOps, automatizzazione e infrastruttura cloud. La tecnologia è un mondo in continua evoluzione, e mi entusiasma la sfida di rimanere sempre aggiornato e condividere questa conoscenza con gli altri!