Pods
The unit of scheduling, and what a pod really is.
In plain terms
A pod is a lunchbox: usually one main container, sometimes a small helper beside it, sharing the same box (network and files). Kubernetes hands out and throws away whole lunchboxes — never individual sandwiches.
The pod is the smallest unit Kubernetes schedules: one or more containers that share a network namespace — one IP, the same localhost — and can share volumes. You rarely create bare pods, but you must understand them, because everything schedulable is ultimately a pod.
pod.yaml
apiVersion: v1kind: Podmetadata:name: weblabels: { app: web } # how Services and controllers find itspec:containers:- name: appimage: nginx:1.25ports: [{ containerPort: 80 }]
Containers in one pod are always co-scheduled on the same node and reach each other on localhost. That shared context is exactly what the multi-container patterns later in this course — sidecars, init containers — are built on.
Bare pods do not self-heal
A pod created directly is managed by nothing — if its node dies, it is gone for good. Wrap anything that must survive in a Deployment (or another controller).