Vai al contenuto principale

Cos’è Kubernetes? Un’introduzione con esempi

Scopri tutto su Kubernetes e come può aiutarti nel tuo workflow di data engineering.
Aggiornato 16 apr 2026  · 9 min leggi

Se conosci l’ascesa del cloud computing, avrai sicuramente sentito parlare di Kubernetes. Nello sviluppo applicativo moderno, è uno strumento chiave da imparare per gestire diverse configurazioni di infrastruttura.

In questo articolo introduttivo ti forniremo una panoramica di Kubernetes e dei suoi componenti, oltre a un tutorial completo per implementarlo in locale. Se cerchi un’esperienza pratica per accompagnare questa guida, dai un’occhiata al nostro corso Introduction to Kubernetes

Cos’è Kubernetes?

Kubernetes è una piattaforma open-source di orchestrazione di container che automatizza il deployment, lo scaling e la gestione delle applicazioni containerizzate. Sviluppato originariamente da Google, è diventato lo standard de facto per l’esecuzione di container su larga scala.

Astrae la complessità della gestione dei singoli container e consente agli sviluppatori di concentrarsi sulla creazione e sul deployment delle loro applicazioni.

Perché usare Kubernetes?

Ecco alcuni vantaggi chiave dell’uso di Kubernetes:

  • Orchestrazione dei container: automatizza la distribuzione e la schedulazione dei container su un cluster.
  • Scalabilità e self-healing: semplifica lo scaling orizzontale (replicazione dei container) e quello verticale (regolazione dell’allocazione delle risorse), il tutto con capacità di auto-riparazione.
  • Alta disponibilità: garantisce che i container (e quindi i tuoi servizi) restino operativi anche se alcuni nodi si guastano.
  • Portabilità: astrae l’infrastruttura sottostante, rendendo semplice l’esecuzione on-premises e sui diversi provider cloud.
  • Uso efficiente delle risorse: ridimensiona i container in base all’utilizzo, ottimizzando l’allocazione e riducendo i costi.

Kubernetes è utile in vari contesti come:

  • DevOps: automatizza il deployment, lo scaling e la gestione delle applicazioni containerizzate.
  • Microservizi: scompone grandi applicazioni monolitiche in servizi più piccoli e gestibili per migliorare agilità e scalabilità.
  • Big data: semplifica il deployment e la gestione di sistemi big data complessi usando i container.
  • Edge computing: consente di eseguire Kubernetes su dispositivi edge per elaborare e analizzare i dati vicino a dove vengono generati, riducendo la latenza e migliorando le prestazioni.
  • Continuous delivery: si integra con strumenti come Jenkins e GitLab per pipeline di consegna continua automatizzate.
  • Machine learning: offre una piattaforma scalabile per addestrare e distribuire modelli di machine learning, gestendo grandi dataset e calcoli complessi.

Concetti chiave in Kubernetes

Per capire come funziona Kubernetes, è utile avere una buona comprensione dei suoi concetti chiave. 

Questi includono 4 concetti principali:

  1. Cluster
  2. Pod
  3. Namespace
  4. Operator

Li approfondiamo qui sotto.

Cluster

I cluster Kubernetes sono gruppi di nodi, cioè macchine individuali che eseguono il software Kubernetes. Il cluster funge da control plane per la gestione di applicazioni e servizi.

In una configurazione tipica, un cluster ha un nodo master e più nodi worker. Il nodo master coordina tutte le attività nel cluster, mentre i nodi worker eseguono e gestiscono i container.

Pod

I pod sono l’unità di deployment più piccola in Kubernetes. Possono contenere uno o più container, insieme a risorse di storage condivise e impostazioni di rete.

Ogni pod ha un proprio indirizzo IP univoco e può comunicare con altri pod nello stesso cluster tramite tale indirizzo. Questo permette una comunicazione efficiente tra i diversi componenti di un’applicazione.

I pod possono essere a contenitore singolo o multi-contenitore, ognuno con il proprio caso d’uso.

  • Pod a contenitore singolo: il tipo più comune, in cui è in esecuzione un solo container. È utile per applicazioni semplici o microservizi che richiedono un unico container.
  • Pod multi-contenitore: più container sono co-localizzati ed eseguiti insieme. Può essere vantaggioso per applicazioni complesse in cui container diversi devono comunicare e condividere risorse.

Namespace

I namespace offrono un modo per partizionare logicamente le risorse all’interno di un singolo cluster. Questo consente una migliore organizzazione e gestione delle risorse, oltre a controlli di sicurezza più rigorosi.

I namespace possono anche essere usati per gestire ambienti diversi, come sviluppo, staging e produzione. In questo modo le risorse restano isolate e non sono influenzate dalle modifiche in altri ambienti.

Per visualizzare i namespace nel tuo cluster, puoi usare questo comando:

kubectl get namespaces

Per passare da un namespace all’altro, usa il seguente comando

kubectl config set-context --current --namespace <namespace name>

Operator

Gli operator sono estensioni software che aiutano ad automatizzare la gestione delle risorse Kubernetes. Usano controller personalizzati ed estensioni API per gestire attività complesse in modo più efficiente e automatico.

Alcuni operator popolari includono:

  • Prometheus per il monitoraggio
  • Operator etcd per gestire cluster etcd

L’uso degli operator può semplificare notevolmente la gestione di applicazioni e risorse all’interno del cluster. Grazie alla loro capacità di automatizzare le attività e offrire funzionalità avanzate, stanno diventando sempre più diffusi tra gli utenti Kubernetes.

Componenti core di Kubernetes

Nella maggior parte degli ambienti Kubernetes è presente un set di componenti fondamentali.

kubernetes core components

Fonte: Kubernetes

Ecco un elenco dei componenti e del loro ruolo:

  1. API Server: agisce come punto di gestione centrale per tutte le risorse Kubernetes. Riceve le richieste dagli utenti e dagli altri componenti e applica le policy per gestire il cluster.
  2. Controller manager: mantiene lo stato desiderato del cluster monitorando costantemente e riconciliando le modifiche apportate agli oggetti nel cluster.
  3. etcd: archivio distribuito key-value che funge da datastore primario per Kubernetes. Memorizza tutti i dati del cluster e garantisce consistenza e disponibilità.
  4. kubelet: agente che gira su ogni nodo del cluster e gestisce i container, assicurandosi che vengano eseguiti secondo le configurazioni specificate.
  5. Kube Proxy: componente che gira su ogni nodo e si occupa di instradare il traffico di rete verso il container corretto.

Come funziona Kubernetes

Come abbiamo visto, Kubernetes automatizza il deployment, lo scaling e la gestione delle applicazioni containerizzate sui cluster. Garantisce alta disponibilità, uso efficiente delle risorse e auto-riparazione senza intervento manuale.

Invece di gestire i singoli container, Kubernetes li raggruppa in Pod e li distribuisce sui nodi worker, che comunicano con il control plane per mantenere lo stato desiderato del sistema.

In breve, ecco come funziona Kubernetes:

  1. Definisci il deployment dell’applicazione: specifichi lo stato desiderato in un file YAML, incluse repliche, limiti di risorse e regole di rete.
  2. Pianifica i carichi di lavoro: lo Scheduler assegna i Pod ai nodi worker in base alla disponibilità di risorse.
  3. Gestisci lo stato del cluster: il Controller Manager assicura che il sistema mantenga il numero corretto di Pod, sostituendo quelli che falliscono.
  4. Gestisci il networking: Kubernetes gestisce la comunicazione tra servizi e l’accesso esterno tramite Service e controller Ingress.
  5. Scala e auto-ripara: regola il numero di Pod in esecuzione in base alla domanda e riavvia automaticamente i container falliti.

Gestendo la complessità infrastrutturale, Kubernetes permette ai team di concentrarsi sulla creazione delle applicazioni anziché sulla gestione dei deployment, rendendolo essenziale per carichi di lavoro scalabili e resilienti in vari settori.

Terminologia e concetti comuni

Vediamo alcuni termini chiave da conoscere e le loro definizioni:

  • Manifest YAML: file di configurazione che definiscono lo stato desiderato della tua applicazione o infrastruttura. Possono essere usati per creare, aggiornare ed eliminare risorse in Kubernetes.
  • StatefulSet vs Deployment: due tipi di controller in Kubernetes che gestiscono il ciclo di vita dei pod. I Deployment sono tipicamente usati per applicazioni stateless, mentre gli StatefulSet per applicazioni stateful.
  • Service: forniscono un indirizzo IP stabile e un nome DNS per accedere alla tua applicazione all’interno del cluster. Abilitano anche la comunicazione tra pod diversi.
  • ConfigMap: usate per archiviare dati di configurazione in coppie chiave-valore accessibili dalla tua applicazione.
  • Secret: simili alle ConfigMap, servono per archiviare informazioni sensibili come password o chiavi API.

Primi passi con Kubernetes

Lavorare con Kubernetes può sembrare impegnativo, soprattutto per via della terminologia e dei concetti. Tuttavia, una volta compresi bene questi elementi essenziali, muoversi sulla piattaforma diventerà molto più semplice.

Iniziamo dando un’occhiata ad alcuni strumenti usati con Kubernetes.

Strumenti per principianti

Se sei agli inizi con Kubernetes, dover distribuire applicazioni sul cloud può essere troppo da gestire. Per questo puoi affidarti ad alcuni strumenti comuni per il deployment in locale. 

Ecco i 2 strumenti più usati:

1. Minikube

Minikube è un’implementazione leggera di Kubernetes che può essere eseguita su una singola macchina. Di solito esegue un cluster a nodo singolo in una macchina virtuale (VM) sul tuo laptop o workstation.

Perché usarlo:

  • Semplice da configurare e rimuovere.
  • Ottimo per sviluppo locale e proof-of-concept.
  • Uso minimo di risorse rispetto a un cluster completo.

Come installare Minikube (esempio su Windows):

# Install via Windows Package Manager
winget install Kubernetes.minikube

Dovresti vedere il seguente messaggio di installazione. Accetta termini e condizioni se richiesto usando “Y”.

installing kubernetes

Poi, per avviare un semplice cluster su minikube, usa il comando start seguente:

# Start a single-node cluster
minikube start

Per verificare che il nodo del cluster sia stato avviato correttamente, esegui il comando get:

# Verify the cluster is running
kubectl get nodes

Nota: devi avere il server API kubectl installato sulla tua macchina locale (in molti casi viene installato automaticamente con Minikube).

2. Kind (Kubernetes in Docker)

Kind sta per Kubernetes in Docker. Usa container Docker come "nodi" in un cluster Kubernetes, fornendo un ambiente di cluster locale semplice e basato su container.

Perché usarlo:

  • Avvio più rapido rispetto a Minikube in molti scenari.
  • Facile creare più cluster di test contemporaneamente, ideale per pipeline CI/CD.
  • Spesso usato in ambienti di test automatizzati grazie al minore overhead.

Come installare Kind (esempio su Windows):

# Install Kind with Windows Package Manager
winget install Kubernetes.kind

Una volta installato, puoi creare un semplice cluster usando il comando create cluster e assegnandogli un nome.

# Create a basic cluster
kind create cluster --name example-cluster

Per verificare se il tuo cluster Kubernetes kind è stato avviato, usa il comando get seguente.

# Check running clusters
kind get clusters

Puoi anche interagire con il cluster tramite l’interfaccia kubectl:

# Interact with your Kind cluster using kubectl
kubectl get nodes

Nota: assicurati di avere Docker installato e in esecuzione.

Provider cloud (EKS, GKE, AKS)

Per eseguire Kubernetes sul cloud, ecco alcuni provider tra cui scegliere:

1. Amazon EKS (Elastic Kubernetes Service)

Amazon EKS è un servizio gestito che semplifica l’esecuzione di Kubernetes su AWS senza dover gestire il control plane o i nodi worker. Si integra con altri servizi AWS per funzionalità aggiuntive come bilanciamento del carico, storage, auto-scaling e monitoraggio.

Alcune funzionalità aggiuntive includono:

  • Offre integrazioni con altri servizi AWS (ad es. IAM, CloudWatch, ECR).
  • Scalabilità e alta disponibilità sono integrate nella piattaforma.

2. Google GKE (Google Kubernetes Engine)

Google GKE è un servizio completamente gestito per eseguire Kubernetes su Google Cloud Platform. Offre scaling automatico, capacità di self-healing e integrazione con altri servizi Google Cloud.

Alcune funzionalità aggiuntive includono:

  • Integrazione profonda con servizi GCP come Cloud Logging, Cloud Monitoring e Container Registry.
  • Offre la modalità autopilot, che gestisce automaticamente l’infrastruttura del cluster.

3. Azure AKS (Azure Kubernetes Service)

Azure AKS fornisce cluster Kubernetes serverless completamente integrati con altri servizi Azure come Storage, Networking e Load Balancing. Ha anche supporto integrato per strumenti DevOps come Helm e Prometheus.

Alcune funzionalità aggiuntive includono:

  • Si integra con Azure Active Directory, Azure Monitor, Container Registry, ecc.
  • Offre Kubernetes serverless (Virtual Nodes) tramite Azure Container Instances.

Risorse per imparare Kubernetes

Imparare Kubernetes per la prima volta può sembrare travolgente, ma ci sono molte risorse disponibili per aiutarti a iniziare. 

Ecco alcune risorse consigliate:

Esempio di deployment su Kubernetes

Per eseguire applicazioni in Kubernetes, segui un flusso strutturato che prevede la configurazione di un cluster, il deployment di un’applicazione containerizzata, l’esposizione come servizio e lo scaling secondo necessità. 

Abbiamo trattato questo processo in dettaglio nel nostro tutorial Kubernetes, ma ecco una panoramica ad alto livello:

Configura un cluster Kubernetes

Usa Minikube per creare un cluster locale per test e sviluppo. Installa Minikube e avvia il cluster usando:

minikube start --driver=docker
Verifica che il tuo cluster sia in esecuzione:
kubectl get nodes

Distribuisci un’applicazione

Definisci lo stato desiderato della tua applicazione in un file YAML di Deployment. Ad esempio, il deployment di un server web Nginx è fatto così:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello
  template:
    metadata:
      labels:
        app: hello
    spec:
      containers:
      - name: hello-container
        image: nginx:latest
        ports:
        - containerPort: 80

Applica il deployment con:

kubectl apply -f hello-deployment.yaml

Esporre l’applicazione come servizio

Per rendere l’applicazione accessibile, crea un Service usando:

kubectl expose deployment hello-deployment --type=NodePort --port=80 --name=hello-service

Recupera l’URL esterno e apri l’app nel browser:

minikube service hello-service

Scala e monitora l’applicazione

Kubernetes ti permette di scalare le applicazioni con facilità. Per aumentare le repliche:

kubectl scale deployment hello-deployment --replicas=3

Controlla i Pod in esecuzione:

kubectl get pods

Visualizza i log per il debugging:

kubectl logs -f <pod-name>

Ecco alcuni esempi per approfondire con progetti avanzati:

  • Esegui job di streaming in container (ad es., Spark su Kubernetes, Kafka su Kubernetes).
  • Usa le Persistent Volumes per montare soluzioni di storage esterne come AWS EBS, Azure Disks o NFS.
  • Distribuisci app più complesse (ad es., microservizi multi-tier con database).
  • Esplora funzioni avanzate come Ingress controller, Service Mesh (ad es., Istio), chart Helm per la gestione dei pacchetti.

Conclusioni

Kubernetes è una piattaforma potente per distribuire e gestire applicazioni containerizzate su larga scala, ed è uno strumento essenziale per i data engineer che hanno bisogno di ambienti elastici e affidabili per l’elaborazione dei dati. 

Se vuoi saperne di più su Kubernetes, il nostro corso Introduction to Kubernetes è il punto di partenza perfetto.

FAQ su Kubernetes

Kubernetes è la stessa cosa di Docker?

No, Kubernetes è uno strumento di orchestrazione dei container mentre Docker è una piattaforma di containerizzazione. Lavorano insieme per gestire e distribuire i container, ma hanno scopi diversi.

Quali sono i vantaggi dell’uso di Kubernetes?

Kubernetes consente una gestione e un deployment dei container più semplici, migliora la scalabilità e la disponibilità delle applicazioni e supporta aggiornamenti e rollback automatici.

Kubernetes può essere usato in qualsiasi tipo di ambiente?

Sì, Kubernetes può essere usato sia in ambienti on-premises che sul cloud. È altamente versatile e si adatta a vari setup infrastrutturali.

È difficile imparare a usare Kubernetes?

Anche se c’è una curva di apprendimento, sono disponibili molte risorse online come DataCamp e le guide introduttive di Kubernetes stesso.

Qual è l’architettura di Kubernetes?

Kubernetes segue un’architettura client-server, con un nodo master che controlla il cluster e nodi worker che eseguono i carichi di lavoro applicativi. Questo consente una comunicazione e una gestione efficienti dell’intero sistema.


Austin Chia's photo
Author
Austin Chia
LinkedIn

Sono Austin, blogger e autore tech con anni di esperienza come data scientist e data analyst nel settore sanitario. Partito dalla biologia, oggi aiuto altri a fare lo stesso passaggio attraverso il mio blog tecnologico. La mia passione per la tecnologia mi ha portato a collaborare come autore con decine di aziende SaaS, ispirando altre persone e condividendo le mie esperienze.

Argomenti

I migliori corsi DataCamp

Programma

Ingegnere dei dati in Python

40 h
Acquisisci le competenze più richieste per ingerire, pulire e gestire i dati in modo efficiente e per programmare e monitorare le pipeline, distinguendoti nel campo dell'ingegneria dei dati.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra altroMostra altro