Liveness — is this process alive and not deadlocked? Failure restarts the container. Should only fail on truly unrecoverable states.
Readiness — is this instance ready to serve traffic? Failure removes it from the load balancer. Appropriate to fail when a dependency (DB, cache) is temporarily unavailable.
Startup — did this application finish starting? Disables liveness and readiness probes until startup succeeds. For slow-starting apps (JVM warm-up, cache pre-warming).