Probes let the kubelet check a container's health and act on the result. There are three: liveness (is it alive, or should it be restarted?), readiness (is it ready to receive traffic?), and startup (has it finished booting yet?). Each answers a different question.
The three probes at a glance
LIVENESS → "Is the app stuck/deadlocked?" FAIL → kubelet RESTARTS the container
READINESS → "Can it serve traffic right now?" FAIL → Pod removed from Service endpoints
(NOT restarted)
STARTUP → "Has the slow boot finished?" runs FIRST; while it runs, liveness &
readiness are held off
