Kubernetes has a reputation for complexity, but as a developer you only need a handful of objects to deploy and scale an app. Here's the mental model without the operations deep-dive.
The Three Objects That Matter
- Pod — one or more containers running together. The smallest deployable unit.
- Deployment — declares how many pod replicas you want and handles rolling updates.
- Service — a stable network address that load-balances across your pods.
A Minimal Deployment
apiVersion: apps/v1
kind: Deployment
metadata: { name: api }
spec:
replicas: 3
selector: { matchLabels: { app: api } }
template:
metadata: { labels: { app: api } }
spec:
containers:
- name: api
image: myorg/api:1.2.0
ports: [{ containerPort: 3000 }]Self-Healing and Scaling
Declare the desired state and Kubernetes maintains it: a crashed pod is restarted, a dead node's pods are rescheduled, and kubectl scale or a HorizontalPodAutoscaler adjusts replicas to match load.
Do You Need K8s?
For a single app, a PaaS (Vercel, Render, Fly.io) is far simpler. Reach for Kubernetes when you're running many services and need fine-grained orchestration.
