Kubernetes (spesso abbreviato in K8s) è la piattaforma standard industriale per l’orchestrazione di container. Sviluppato originariamente da Google (basato sul loro sistema interno Borg) e ora gestito dalla Cloud Native Computing Foundation (CNCF), permette di gestire cluster di macchine (nodi) come se fossero un’unica entità computazionale.
I concetti chiave di Kubernetes includono:
- Pod: l’unità minima di esecuzione, che può contenere uno o più container (solitamente Docker).
- Service: definisce un set logico di Pod e una politica per accedervi (bilanciamento del carico).
- Deployment: descrive lo stato desiderato dell’applicazione (es. “voglio 3 repliche del container X”); Kubernetes monitora costantemente il cluster e interviene per mantenere tale stato.
Ingegneristicamente, Kubernetes abilita l’architettura a microservizi su larga scala, garantendo:
- Self-healing: riavvia automaticamente i container che falliscono.
- Horizontal Scaling: aumenta o diminuisce il numero di repliche in base al traffico.
- Service Discovery: assegna nomi DNS ai container per permettere loro di trovarsi a vicenda.
Kubernetes ha rivoluzionato il mondo del DevOps e del Cloud Computing, permettendo di distribuire software complesso in modo agnostico rispetto al fornitore di infrastruttura (AWS, Google Cloud, Azure o server on-premise).