What are the phases of a Pod's lifecycle?
Quick Answer
A Pod moves through Pending (accepted, not all containers running), Running, then a terminal Succeeded or Failed; Unknown means the node is unreachable. Container-level states (Waiting/Running/Terminated) and probes drive what actually happens inside.
Detailed Answer
The Pod's phase is a high-level summary. Pending means the API accepted it but it isn't fully running yet — it may be waiting to be scheduled, pulling images, or running init containers. Running means it's bound to a node and at least one container is up. Succeeded and Failed are terminal (all containers exited, 0 vs non-zero). Unknown usually means the node stopped reporting. Underneath, each container has its own state — Waiting (e.g., ImagePullBackOff, CrashLoopBackOff), Running, or Terminated — and readiness/liveness/startup probes govern traffic and restarts: readiness gates whether the pod receives Service traffic, liveness triggers restarts, startup protects slow-booting apps from premature liveness failures. Graceful shutdown matters too: on deletion the pod gets a SIGTERM, a terminationGracePeriod to drain, then SIGKILL.
Code Example
kubectl get pod web -o jsonpath='{.status.phase}' # Pending/Running/...
kubectl describe pod web # container states + probe events + restart reasonsInterview Tip
Separate pod *phase* from container *state* — many candidates conflate them. Then connect probes to behavior: readiness=traffic, liveness=restart, startup=slow boots.