Ku­ber­ne­tes (chiamato anche K8s) consente una gestione ef­fi­cien­te di grandi quantità di container e au­to­ma­tiz­za molti processi nello sviluppo software. Bastano pochi passaggi per in­stal­la­re un cluster Ku­ber­ne­tes potente e uti­liz­zar­lo subito in maniera efficace.

Managed Ku­ber­ne­tes
Or­che­stra­zio­ne sicura dei carichi di lavoro dei container
  • Con­fi­gu­ra­zio­ne au­to­ma­ti­ca dei cluster Ku­ber­ne­tes
  • Ar­chi­via­zio­ne per­si­sten­te com­ple­ta­men­te integrata
  • As­si­sten­za clienti 24/7

Primo passaggio: prepara il sistema

Ti mostriamo in questo tutorial un esempio di in­stal­la­zio­ne di Ku­ber­ne­tes su Ubuntu.

Nel primo passaggio dobbiamo preparare il sistema ag­gior­nan­do­lo e in­stal­lan­do tutte le di­pen­den­ze ne­ces­sa­rie. A tal fine, apri il terminale ed esegui prima un ag­gior­na­men­to del sistema per as­si­cu­rar­ti che tutti i pacchetti siano ag­gior­na­ti:

sudo apt update && sudo apt upgrade -y
bash

Suc­ces­si­va­men­te installa i prin­ci­pa­li programmi di supporto necessari per l’in­stal­la­zio­ne di Ku­ber­ne­tes e Minikube. A tal fine, puoi uti­liz­za­re il seguente comando:

sudo apt install -y curl wget apt-transport-https ca-certificates gnupg lsb-release
bash

Questi strumenti ga­ran­ti­sco­no che tu possa uti­liz­za­re fonti esterne in sicurezza e scaricare e in­stal­la­re pacchetti software ag­giun­ti­vi senza com­pli­ca­zio­ni.

Secondo passaggio: installa kubectl

Ku­ber­ne­tes funziona con diversi server: il master e vari nodi. Questi non devono ne­ces­sa­ria­men­te essere su server fisici dif­fe­ren­ti. Le macchine virtuali per­met­to­no di attivare più nodi Ku­ber­ne­tes anche su un singolo computer. Proprio per scopi di test, il programma gratuito Minikube si è di­mo­stra­to utile. Consente di lavorare con Ku­ber­ne­tes anche in locale. Poiché Minikube necessita di una macchina virtuale o di Docker, il programma richiede un hy­per­vi­sor o un software per i container. Inoltre, è ne­ces­sa­rio lo strumento kubectl.

N.B.

In questo tutorial ti mostriamo come muovere i primi passi con Ku­ber­ne­tes usando Docker. Tuttavia, puoi fare lo stesso anche con un software di vir­tua­liz­za­zio­ne come Vir­tual­Box.

Per prima cosa, installa kubectl (Kube Control) sul tuo sistema. Questo programma è ne­ces­sa­rio per gestire i cluster.

curl -LO "https://dl.k8s.io/release/$(curl -Ls https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
bash
N.B.

I comandi di in­stal­la­zio­ne dipendono dall’ar­chi­tet­tu­ra del tuo sistema.

Terzo passaggio: installa Docker

Prima di poter uti­liz­za­re Minikube, devi as­si­cu­rar­ti che Docker sia in­stal­la­to sul tuo sistema. Docker funge da runtime per i container e permette a Minikube di gestire un cluster Ku­ber­ne­tes senza software di vir­tua­liz­za­zio­ne. Installa Docker con il seguente comando:

sudo apt install -y docker.io
bash

Per uti­liz­za­re Docker senza permessi di root, aggiungi il tuo account utente al gruppo Docker:

sudo usermod -aG docker $USER
newgrp docker
bash

Potrebbe essere ne­ces­sa­rio di­scon­net­ter­si e ri­con­net­ter­si affinché l’ap­par­te­nen­za al gruppo diventi attiva. Testa l’in­stal­la­zio­ne infine con:

docker run hello-world
bash

Se appare un breve messaggio che l’ope­ra­zio­ne è andata a buon fine, Docker è stato in­stal­la­to cor­ret­ta­men­te ed è pronto per Minikube.

Quarto passaggio: installa e avvia Minikube

In un passaggio suc­ces­si­vo, installa Minikube di­ret­ta­men­te in una versione com­pa­ti­bi­le e utilizza Docker come driver. Scarica in­nan­zi­tut­to la versione ap­pro­pria­ta di Minikube, rendi il file ese­gui­bi­le e spostalo in una directory di sistema, in modo che il comando sia di­spo­ni­bi­le a livello globale:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
chmod +x minikube-linux-arm64
sudo mv minikube-linux-arm64 /usr/local/bin/minikube
bash

Dopo l’in­stal­la­zio­ne, puoi ve­ri­fi­ca­re se Minikube è stato con­fi­gu­ra­to cor­ret­ta­men­te con il seguente comando:

minikube version
bash

Suc­ces­si­va­men­te, avvia Minikube con il seguente comando:

minikube start --driver=docker
bash

In questo scenario, Minikube utilizza Docker come runtime di container e crea il cluster Ku­ber­ne­tes di­ret­ta­men­te all’interno dell’ambiente Docker. All’avvio di Minikube, kubectl dovrebbe essere con­fi­gu­ra­to au­to­ma­ti­ca­men­te in modo corretto. Digita un altro comando per passare dalla riga di comando a un’in­ter­fac­cia grafica (GUI). In questo modo aprirai la dashboard nel browser pre­de­fi­ni­to.

minikube dashboard
bash
Immagine: Dashboard di Kubernetes
Ku­ber­ne­tes: dashboard.

Quinto passaggio: utilizza Ku­ber­ne­tes

Dopo l’avvio di Minikube, il programma crea au­to­ma­ti­ca­men­te un cluster con un solo nodo. Puoi ve­ri­fi­car­lo con una richiesta a Kubectl:

kubectl get nodes
bash

Ora puoi creare de­ploy­ment tramite la dashboard. Fai clic sul pulsante Create (il simbolo del più in alto a destra) per passare a un editor basato sul web. Qui puoi creare un de­ploy­ment in formato JSON o YAML. Dopodiché Ku­ber­ne­tes genera au­to­ma­ti­ca­men­te più pod. Regola il numero de­si­de­ra­to di pod scalando il de­ploy­ment. La funzione cor­ri­spon­den­te è ac­ces­si­bi­le tramite un pulsante con tre punti che trovi accanto al de­ploy­ment.

Immagine: Dashboard di Kubernetes con un deployment e quattro pod
Ku­ber­ne­tes: de­ploy­ment e pod nella dashboard.
Immagine: Scalare un deployment in Kubernetes
Ku­ber­ne­tes: scalare un de­ploy­ment.

In al­ter­na­ti­va, puoi creare de­ploy­ment tramite il terminale. A questo scopo è, tuttavia, ne­ces­sa­rio che il contenuto sia già integrato in un’immagine Docker, salvata in un re­po­si­to­ry.

kubectl create deployment --image=[percorso dell‘immagine]
bash

Grazie ai comandi della riga di comando è possibile ottenere una grande quantità di in­for­ma­zio­ni.

Quali de­ploy­ment sono di­spo­ni­bi­li?

kubectl get deployments
bash

Quanti pod ci sono?

kubectl get pods
bash

Quali servizi sono di­spo­ni­bi­li?

kubectl get services
bash

Quali nodi sono attivi?

kubectl get nodes
bash
Immagine: Terminale con diversi comandi e output di Kubernetes
Comandi di Ku­ber­ne­tes nel terminale.

Sesto passaggio: pubblica il de­ploy­ment

Finora hai soltanto avviato il tuo de­ploy­ment, senza pub­bli­car­lo. Una pub­bli­ca­zio­ne viene avviata con la creazione di un servizio:

kubectl expose deploy test-deployment
bash

In questo modo, il servizio viene pub­bli­ca­to solo all’interno del cluster. Per poter accedere al de­ploy­ment anche all’esterno del cluster è ne­ces­sa­rio ag­giun­ge­re ulteriori flag:

kubectl expose deploy test-deployment --type=LoadBalancer --port=8080
bash

Con Minikube è poi possibile avviare il servizio:

minikube service test-deployment
bash

Se desideri invece can­cel­la­re il servizio, utilizza il seguente comando:

kubectl delete service test-deployment
bash

Puoi eliminare anche il de­ploy­ment:

kubectl delete deployment test-deployment
bash

Per arrestare Minikube, devi in­ter­rom­pe­re il processo:

minikube stop
bash

Se invece non desideri più lavorare con la VM o il runtime di container, puoi anche eli­mi­nar­li.

minikube delete
bash

Vengono rimosse anche le im­po­sta­zio­ni spe­ci­fi­ca­te, i de­ploy­ment e i pod creati. Se riavvii Minikube in un secondo momento, riparti nuo­va­men­te da un cluster vuoto.

Vai al menu prin­ci­pa­le