Kubernetes
The system that runs and babysits containers across many machines.
Kubernetes (often shortened to K8s) is open source software that runs containers across a group of machines, called a cluster. You tell it what you want: "run three copies of this image, give each one 1 GB of memory, expose them on port 80". Kubernetes finds room on the machines, starts the containers, and if one dies or a whole machine fails, it starts a replacement somewhere else without anyone being paged.
That desired state is written in YAML files. A Pod is the smallest unit (one container, or a few that must run together); a Deployment keeps N copies of a Pod alive and rolls out new versions gradually; a Service gives them a stable address so traffic can find them. Change the YAML, apply it, and Kubernetes moves the cluster from the old state to the new one.
Google built it from its internal system (Borg) and open-sourced it in 2014; today it is the default way to run large fleets of containers, and every cloud sells a managed version (Amazon EKS, Google GKE, Azure AKS). The cost is complexity: for one small app it is usually overkill, and simpler options like Amazon ECS and Fargate or a serverless function do the job.
Keep in mind
- You declare the desired state; Kubernetes keeps reality matching it.
- Pods, Deployments and Services are the three words to learn first.
- It scales by adding machines to the cluster and copies of your Pods.
- Managed offerings (EKS, GKE, AKS) run the control plane for you.