In breve
Kubernetes gestisce automaticamente i container quando sono tanti: li distribuisce su più server, li riavvia se si bloccano, ne aumenta il numero quando cresce il traffico e li aggiorna senza interrompere il servizio. In gergo: li orchestra.
È una delle competenze più richieste e meglio pagate del mondo cloud, ma anche una di quelle che spaventano di più chi inizia. Qui trovi Kubernetes spiegato in modo semplice: cos'è, i concetti fondamentali, un primo esempio pratico e, soprattutto, quando serve davvero.
Kubernetes: cos'è in breve
Kubernetes, spesso abbreviato in K8s, è nato in Google ed è stato reso open source nel 2014. Oggi è lo standard per eseguire applicazioni basate su container in produzione, ed è gestito dalla Cloud Native Computing Foundation.
Docker
Crea ed esegue un container.
Kubernetes
Ne gestisce centinaia, su decine di server, come un unico sistema.
Se non hai ancora chiaro cos'è un container, parti dalla guida su Docker spiegato da zero.
Il problema che risolve
Immagina un'applicazione composta da dieci servizi, ognuno in più copie: cinquanta container su cinque server. Senza uno strumento dedicato dovresti decidere a mano dove avviare ogni container, controllare di continuo che siano attivi, riavviare quelli bloccati e aggiungerne altri quando arriva più traffico.
Tu descrivi lo stato che vuoi, Kubernetes lo mantiene
Per esempio: “voglio sempre 3 copie di questa applicazione”. Se un container si blocca o un server si spegne, Kubernetes ne avvia un altro in automatico.
I concetti base di Kubernetes
Cluster
L'insieme dei server gestiti da Kubernetes
Control plane
Il “cervello” del cluster, che prende le decisioni
Nodo
Un server del cluster su cui girano i container
Pod
L'unità più piccola: uno o più container che lavorano insieme
Deployment
Descrive quante copie di un Pod vuoi e come aggiornarle
Service
Un indirizzo stabile per raggiungere un gruppo di Pod
Namespace
Una suddivisione logica del cluster, per esempio “test” e “produzione”
ConfigMap e Secret
Configurazioni e dati sensibili, separati dal codice
All'inizio bastano tre concetti, evidenziati sopra: Pod, Deployment e Service. Con questi puoi già far girare un'applicazione completa.
Un primo esempio pratico
In Kubernetes tutto si descrive con file YAML. Ecco un Deployment che avvia 3 copie di un server web Nginx e un Service che le rende raggiungibili:
apiVersion: apps/v1
kind: Deployment
metadata:
name: sito-web
spec:
replicas: 3
selector:
matchLabels:
app: sito-web
template:
metadata:
labels:
app: sito-web
spec:
containers:
- name: nginx
image: nginx:1.27
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: sito-web
spec:
selector:
app: sito-web
ports:
- port: 80
targetPort: 80Salvi il file come sito.yaml e lo applichi con lo strumento da riga di comando di Kubernetes, kubectl:
kubectl apply -f sito.yaml
kubectl get pods
kubectl get servicesL'esperimento chiave
Elimina uno dei Pod con kubectl delete pod <nome>: Kubernetes ne creerà subito un altro per tornare a 3 copie. È l'essenza di Kubernetes in un solo esperimento.
Dove provare Kubernetes
Per imparare non serve un cluster in azienda. Puoi usare:
- minikube o kind, che creano un piccolo cluster sul tuo computer;
- Docker Desktop, che include un'opzione per attivare Kubernetes in locale;
- servizi gestiti nel cloud, come Amazon EKS su AWS, AKS su Azure e GKE su Google Cloud. Attenzione ai costi: un cluster gestito si paga anche quando è inattivo.
Ti piacerebbe lavorare con container e Kubernetes?
Fai il quiz gratuito di 2 minuti: 9 domande per capire se hai la predisposizione giusta per un lavoro nel cloud.
Fai il quiz gratuitoQuando serve davvero Kubernetes (e quando no)
Kubernetes è potente, ma anche complesso. Non è la soluzione giusta per tutto.
Ha senso quando
- l'applicazione ha molti servizi e molti container
- serve scalare in automatico in base al traffico
- più team rilasciano di continuo sullo stesso sistema
- si vuole un modo standard di gestire app su cloud diversi
Spesso è eccessivo quando
- l'applicazione è piccola o ha pochi container
- il team è ridotto e non ha tempo per la complessità
- bastano servizi più semplici come AWS Fargate o Amazon ECS
Saper riconoscere quando non usarlo è una competenza che i selezionatori apprezzano quanto saperlo usare.
Da dove iniziare: la strada giusta
L'errore più comune è partire da Kubernetes. La sequenza che funziona è:
- 1Linux e reti di base, perché Kubernetes le dà per scontate (vedi Linux per principianti)
- 2Docker, per capire bene immagini e container (vedi Docker spiegato da zero)
- 3Kubernetes, Pod, Deployment e Service, poi il resto
- 4Kubernetes nel cloud, con un servizio gestito come Amazon EKS
Trovi come Kubernetes si inserisce nel lavoro quotidiano nella guida sul DevOps engineer e in quella su come diventare cloud engineer.
Corso Kubernetes: cosa deve insegnarti
Se valuti un corso Kubernetes, controlla che copra almeno:
- l'architettura del cluster e i concetti di base;
- la scrittura di file YAML per Deployment, Service, ConfigMap e Secret;
- i comandi kubectl per gestire e diagnosticare problemi;
- gli aggiornamenti senza interruzioni e il ritorno alla versione precedente;
- laboratori pratici su un cluster reale o locale.
Per chi vuole certificarsi, la più conosciuta è la Certified Kubernetes Administrator (CKA), da affrontare dopo aver fatto pratica.
Domande frequenti
Kubernetes è difficile da imparare?
Le basi si imparano in alcune settimane, se conosci già Docker e un po' di Linux. Padroneggiarlo in produzione richiede mesi di esperienza.
Kubernetes sostituisce Docker?
No. Docker serve a creare le immagini dei container, Kubernetes le esegue e le gestisce su larga scala. Si usano insieme.
Kubernetes è gratis?
Sì, è open source. Nel cloud però paghi i server su cui gira e, nei servizi gestiti, anche la gestione del cluster.
Un cloud engineer junior deve conoscere Kubernetes?
Le basi sono un vantaggio concreto. Molte posizioni junior però non lo richiedono in modo approfondito: di solito si parte da cloud, Linux e Docker, e Kubernetes arriva dopo.
In sintesi
- Kubernetes orchestra i container: li distribuisce, li riavvia, li scala e li aggiorna in automatico.
- I concetti da cui partire sono Pod, Deployment e Service, descritti in file YAML e gestiti con kubectl.
- Puoi impararlo in locale con minikube o kind, e poi provarlo nel cloud con servizi come Amazon EKS.
- Non serve sempre: per applicazioni piccole esistono soluzioni più semplici.
- La strada giusta passa prima da Linux e Docker.
Lavorare con Kubernetes e il cloud fa per te?
Fai il quiz gratuito di 2 minuti prima di investire tempo o soldi.
Fai il quiz gratuitoContinua a esplorare
Vuoi capire se questo percorso fa per te?
Il quiz gratuito richiede due minuti e ti aiuta a capire se una carriera nel cloud è adatta al tuo punto di partenza.
Fai il quiz gratuito