| 1 | A Pod is scheduled exactly once in its lifetime. It begins in the Pending phase while the scheduler binds it to a node and the runtime pulls images. Once at least one container is live, the phase becomes Running, the highlighted middle box of this diagram. From Running there are two terminal exits: Succeeded if every container exited cleanly, Failed if any exited with a non-zero status. A third branch, Unknown, appears when the apiserver loses contact with the node. Below the phases, the container-state track shows the per-container view: Waiting, Running, Terminated, with the restart policy controlling how kubelet handles failures, backed by exponential backoff up to five minutes. |