Kubernetes (spesso abbreviato in K8s) è una piattaforma open-source di container orchestration. Automatizza il deploy, lo scaling, il networking e il ripristino delle applicazioni containerizzate su un cluster di macchine: tu descrivi lo stato desiderato (desired state) e Kubernetes lavora di continuo per far corrispondere la realtà a esso.
Il problema: far girare container su larga scala è difficile
You have containers (from Docker), but in production you must also answer:
→ On WHICH machine does each container run? (scheduling)
→ What if a container crashes? (self-healing / restarts)
→ What if a whole node dies? (reschedule elsewhere)
→ How do 50 replicas find and talk to each other? (service discovery)
→ How do I roll out a new version with zero downtime? (rolling updates)
→ How do I scale from 3 to 30 replicas on a traffic spike? (autoscaling)
Doing all this by hand across many servers does not scale.
