What Is a Kubernetes Pod?
A Pod is the smallest deployable unit in Kubernetes. It wraps one or more containers that share the same network namespace, IP address, and storage volumes, and are always co-scheduled on the same node.
Detailed Answer
A Pod is the smallest and simplest unit in the Kubernetes object model. It represents a single instance of a running process in your cluster.
What's Inside a Pod
A Pod encapsulates:
- One or more containers (usually Docker containers)
- Shared storage volumes that all containers in the Pod can access
- A unique cluster IP address shared by all containers
- Configuration for how the containers should run (resource limits, environment variables, probes)
Pod Networking
Every Pod gets its own IP address. Containers within the same Pod communicate over localhost — they share the same network namespace. This is why multi-container Pods work seamlessly: a sidecar proxy container can intercept traffic on localhost without any service discovery.
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.27
ports:
- containerPort: 80
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "250m"
memory: "256Mi"
Why Pods Exist (Not Just Containers)
Kubernetes doesn't run containers directly because it needs a higher-level abstraction that supports:
- Co-location: Some containers must run together (e.g., app + log collector)
- Shared resources: Containers in a Pod share volumes and network
- Lifecycle management: Kubernetes manages the Pod as a unit — if the node fails, the entire Pod is rescheduled
Pods Are Ephemeral
Pods are designed to be disposable. They can be terminated by the scheduler, evicted due to resource pressure, or killed during node failures. This is why you should never deploy standalone Pods in production — always use a controller (Deployment, StatefulSet, DaemonSet) that recreates Pods automatically.
Why Interviewers Ask This
Interviewers ask this to establish your foundational understanding of Kubernetes. A weak answer here signals that you may not understand how workloads actually run on a cluster.
Common Follow-Up Questions
Key Takeaways
- A Pod is the atomic unit of scheduling in Kubernetes — you never deploy a container directly.
- All containers in a Pod share the same IP address and can communicate via localhost.
- Pods are ephemeral by design — they can be terminated and replaced at any time.
- In practice, Pods are almost always managed by a higher-level controller like a Deployment.