A Kubernetes pod is the smallest unit you can deploy and schedule in Kubernetes. It holds one or more tightly coupled containers that run on the same node and share an IP address, ports and optionally storage volumes.
Why it matters
Kubernetes does not run bare containers; it runs pods. Pods are disposable. When a pod dies or a node fails, a controller creates a replacement, usually with a new name and a new IP address. That is why clients should reach pods through a Service or ingress rather than a pod IP, and why data you need to keep belongs on persistent volumes or external databases.
Example
apiVersion: v1
kind: Pod
metadata:
name: web
spec:
containers:
- name: app
image: nginx:1.27
ports:
- containerPort: 80
In practice you rarely create a bare pod. A Deployment manages several identical pods and replaces failed ones.
Common mistakes
- Treating a pod like a small server and storing important files in its local filesystem.
- Putting unrelated containers in one pod, so they cannot scale independently.
- Skipping readiness probes, so traffic is sent to a pod that has not finished starting.
- Setting no resource requests or limits.
Related
Get notified when this term updates
Plus occasional practical tips on uptime and monitoring, nothing else. Unsubscribe anytime.
This page is general information written by our editorial team and updated when documentation changes. Servers and providers differ, so test changes safely first. See our editorial policy and disclaimer.