Readiness and liveness probes have different consequences and are frequently swapped. A failing readiness probe causes the endpoints controller to remove the pod's address from the Service's EndpointSlice, so it stops receiving traffic, and the pod's Ready condition goes false. The container is not restarted and the pod is not rescheduled.
This means a pod stuck in a permanently unready state sits there consuming its resource requests indefinitely, and a Deployment rollout that requires readiness will block at maxUnavailable rather than failing loudly.
Point the readiness probe at a handler that reflects dependency health, such as whether the database pool is usable, and point the liveness probe at a cheap handler that only proves the process loop is alive. Never make a liveness probe depend on a downstream service: a shared dependency outage then restarts every pod in the fleet at once and turns a partial failure into a total one. Verify which probe fired by reading the reason string in the pod's events.