Kubernetes
A container orchestration platform that manages running containers across a cluster of machines. Kubernetes (K8s) handles scheduling, scaling, self-healing, and rolling updates. The standard for running containers in production at scale. Complex but powerful. Made by Google.
Joe Beda, Brendan Burns, Craig McLuckie · Created Kubernetes at Google in 2014
- Large-scale container deployments.
- Teams needing auto-scaling and self-healing.
- Microservices architectures.
- Small apps (use Docker Compose or serverless).
- Teams without DevOps expertise.
Definition
Kubernetes orchestrates containers across a cluster. You declare desired state (Deployments, Services); K8s reconciles to match it. Features: auto-scaling, self-healing (restarts failed containers), rolling updates, service discovery, load balancing, config/secrets management.
Why it exists
Running containers manually across many machines is hard — scheduling, failures, scaling, updates. Kubernetes automates all of it, inspired by Google's internal Borg system.
How it works
Define Deployments (how many replicas of a container), Services (networking), Ingress (HTTP routing). The control plane schedules pods (container groups) onto nodes. Kubelet on each node runs pods. etcd stores cluster state. kubectl is the CLI.
Scaling limits
Steep learning curve. Complex to operate (managed K8s like EKS/GKE helps). Resource overhead for the control plane. YAML complexity. Overkill for small apps.
Cost shape
Free and open source. Managed K8s (EKS, GKE, AKS) charges per cluster/hour + nodes.
Alternatives
- Docker Swarm — Simpler, built into Docker, but less features.
- Serverless (Lambda) — No infrastructure management, but vendor lock-in.
Failure modes
- Configuration complexity (YAML fatigue).
- Resource leaks from orphaned resources.
- Networking complexity.
- Hard to debug.