© Copyright 2026 Ferrantino Francesco

Kubernetes è una piattaforma pensata per gestire applicazioni in container in modo automatico, scalabile e affidabile. Questa serie di articoli raccoglie i concetti base spiegati in modo semplice e adatti a chi parte da zero.




Kubernetes è oggi una delle tecnologie più importanti nel mondo dello sviluppo e del DevOps. È lo standard con cui le aziende gestiscono applicazioni moderne, distribuite e costruite con container.

Le applicazioni moderne non sono più “un programma installato su un server”, ma un insieme di servizi che comunicano tra loro, devono essere aggiornati senza downtime e devono reggere carichi variabili. Kubernetes serve proprio a questo: gestire i container in modo automatico, distribuendo il carico, sostituendo componenti guasti e mantenendo sempre operativo tutto il sistema.

In pratica, Kubernetes è:
  • lo strumento più usato per orchestrare container
  • una piattaforma adatta ai microservizi
  • una tecnologia pensata per produzione e ambienti complessi
  • utile a chi gestisce e mantiene applicazioni e servizi online



Per capire perché Kubernetes è diventato così importante è utile ripercorrere l’evoluzione dell’infrastruttura.

  • Server fisici
    Un unico server, spesso sottoutilizzato, con applicazioni installate direttamente sul sistema operativo.
    • Problemi: conflitti, spreco di risorse, difficoltà di scalare.

  • Macchine virtuali (VM)
    Grazie agli hypervisor è stato possibile creare più sistemi operativi separati sullo stesso server.
    • Vantaggi: isolamento e maggiore sfruttamento dell'hardware.
    • Limiti: ogni VM richiede un proprio sistema operativo consumando molta RAM e CPU.

  • Container
    Con i container (es. Docker) non serve più un sistema operativo completo per ogni applicazione. Sono leggeri, veloci e condividono il kernel con l’host. Perfetti per sviluppare e distribuire rapidamente.

  • Kubernetes
    Quando i container diventano tanti, su più server, serve un “direttore d’orchestra”. Kubernetes decide dove eseguire i container, li controlla, li sostituisce se cadono e distribuisce il traffico. È qui che nasce il vero vantaggio dell’orchestrazione.



Come funziona Kubernetes


  • Control Plane (Master Node)

  • Sono il cervello del nostro cluster, sempre di numero dispari, generalmnente uno o più di uno per avere affidabilità, questo perché etcd (il database distribuito che memorizza lo stato del cluster usa un meccanismo di quorum per prendere le decisioni) e con un numero dispari di membri, il cluster può sempre raggiungere un quorum anche se alcuni nodi cadono. Sono i nodi che vanno a coordinare le operazioni sul nostro cluster.

    Kubernetes è un sistema di tipo dichiarativo quindi specificare lo stato desiderato con delle definizioni generalmente espresse in yaml e attraverso i nodi master andrà a convergere verso lo stato desiderato.

    I componenti fondamentali dei nodi master:
  • API Server: tutta la configurazione nel cluster kubernetes passa attraverso un nodo master con il processo chiamato server API:
    • una interfaccia utente
    • una dashboard kubernetes
    • un'API che potrebbe essere uno script o una richiesta curl
    • uno strumento a riga di comando come kubectl
  • Scheduler: pianifica i container su diversi nodi in base al carico di lavoro e le risorse del server disponibili su ciascun nodo. Andrà ad allocare i nostri workload, i nostri microservizi, sulle macchine kubelet.
  • Controllers monitora il cluster. Sono diversi applicativi che:
    • verificano lo stato del cluster interagendo con l'API server
    • verificano lo stato desiderato dall'utente e quello attuale sul cluster e vanno ad intraprendere delle azioni affinchè il cluster possa andare a convergere verso lo stato desiderato. Ad esempio, possiamo avere un'istanza di un microservizio il quale interagirà in maniera sottostante con una persistenza, un database.
  • etcd: un archivio di backup di Kubernetes che mantiene in qualsiasi momento lo stato corrente del cluster kubernetes. All'interno ha tutti i dati di configurazione e tutti i dati di stato di ciascun nodo e ciascun contenitore all'interno di quel nodo. Il backup e il ripristino è realizzato dagli snapshot etcd. Un archivio dati di tipo chiave/valore di tipo distribuito.

  • Worker Node

  • Se i nodi master possono essere pensati come il cervello e i nodi devono essere di numero dispari, i nodi worker possono essere di numero dispari o pari e sono i nodi dove girano le applicazioni, hanno la caratteristica di far girare i container, i microservizi, che sono stati schedulati dal componente scheduler all'interno dei nodi master.

    I componenti fondamentali dei nodi master:
  • Kubelet: è un applicativo che permette di interconnettere i Worker Node con i Master Node e permette di intraprendere delle azioni su ogni nodo. Ogni Kubelet è responsabile per il suo nodo e permetterà operazioni come ad esempio far partire o far terminare un container. Kubelet è un processo Kubernetes che consente ai cluster di parlare tra loro ed eseguire attività sui nodi come l'esecuzione di processi applicativi su ciascun nodo worker
  • Kube-Proxy: gestisce il networking
  • Container Runtime: ad esempio Containerd



Gli oggetti fondamentali di Kubernetes

Gli oggetti fondamentali di Kubernetes come Pod, Deployment, Service, Ingress, ConfigMap, Secret, Volumi e StatefulSet non risiedono in un nodo specifico. Sono gestiti dal Control Plane e distribuiti automaticamente sui nodi worker in base alle esigenze del cluster.

Pod

L’unità base: contiene uno o più container che condividono rete e storage.

Deployment

Gestisce la vita dei Pod: quanti devono esistere, come aggiornarli, come ricrearli se cadono.

Service

Espone i Pod all’interno del cluster e gestisce il bilanciamento del carico. Un Service fornisce un IP stabile che non cambia anche se i Pod vengono ricreati.

Il Service non è uno per ogni Pod, ma espone un gruppo di Pod che svolgono la stessa funzione. Se un Pod muore e Kubernetes ne crea uno nuovo, il Service continua a funzionare con lo stesso IP e lo stesso endpoint, senza richiedere modifiche alle applicazioni che lo utilizzano.

Ingress

Permette di accedere ai servizi via HTTP/HTTPS usando domini e regole di routing.

ConfigMap

Utilizzati per configurare le applicazioni. Le ConfigMap contengono dati non sensibili.

Secret

simile a ConfigMap ma con la differenza che viene utilizzato per memorizzare dati segreti come archiviare le credenziali non in un formato di testo semplice ma in BASE64 in formato codificato.Utilizzati per configurare le applicazioni. I Secret contengono dati sensibili (es. password).

Volumi

Servono per conservare i dati anche se i Pod vengono ricreati.

StatefulSet

Se una delle repliche del Pod dell'applicazione muore, il service inoltrerà le richieste a un altro in modo che l'applicazione sia accessibile ancora per l'utente. Il Pod del database se muore anche l'applicazione non sarebbe accessibile, quindi abbiamo bisogno anche di una replica del database, tuttavia non possiamo replicare il database utilizzando un deployment. Lo Statefulset è pensato prr applicazioni come database o qualsiasi altra applicazione stateful database e no deployment: deployment per stateless apps e stafulset per stateful apps o database

Ferrantino Francesco

Ferrantino Francesco

Cookie Policy

Leggi  informativa Cookie Policy
Il "Sito" utilizza i Cookie per rendere i propri servizi semplici e efficienti per l’utenza che visiona le pagine di franksoft.it

Disclaimer

L'autore degli articoli non si assume nessuna responsabilità per eventuali danni ai vostri dispositivi. Tutto ciò che viene spiegato è puramente a scopo dimostrativo.
Il presente sito non costituisce testata giornalistica in quanto non ha carattere periodico ed è aggiornato secondo la mia disponibilità e la reperibilità dei materiali ivi contenuti. Pertanto, non può essere considerato in alcun modo un prodotto editoriale ai sensi della Legge n. 62 del 7/03/2001.

Licenza

Tutte le immagini presenti nel sito appartengono ai rispettivi titolari e sono utilizzate senza alcuno scopo di lucro. Ogni eventuale violazione del copyright non è intenzionale.
Quest'opera è distribuita con Licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 4.0 Internazionale.  Licenza Creative Commons