Kubernetes
In short: Kubernetes (K8s) is an open-source system that starts containers across many machines, monitors them and restarts them on failure.
In more detail: You describe the desired state in text files (YAML): “run three copies of this application”. Kubernetes makes sure the actual state matches. It scales, distributes load, rolls out updates gradually and replaces failed containers.
In Depth
- Pod: smallest unit, contains one or more containers.
- Deployment: describes how many pods of an application run and how they are updated.
- Service: a stable address in front of changing pods.
- Ingress: routes HTTP requests from outside to services.
- Node and cluster: the machines and their entirety.
- When it pays off: with many services and teams. For a small application, Docker or a platform like Vercel is often simpler.
See also: Docker, Microservices, Infrastructure as code (Terraform and Ansible)