CoursesKubernetes administrationArchitecture & Core Objects

Pods

The unit of scheduling, and what a pod really is.

Beginner12 min · lesson 7 of 65
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: v1
kind: Pod
metadata:
name: web
labels: { app: web } # how Services and controllers find it
spec:
containers:
- name: app
image: nginx:1.25
ports: [{ 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).