Start here. This is the direct spoken answer to practice first.
Why this question matters
Readiness answers whether this instance should receive traffic, liveness answers whether restarting it may recover a stuck process, and startup protects slow initialization from premature liveness failures.
A readiness endpoint can fail while the app is starting, draining, or temporarily unable to serve its required path. Liveness should stay narrow and avoid failing merely because a shared database is briefly unavailable; restarting every replica would add load without repairing the dependency. A startup probe or sufficient startup window delays liveness enforcement until initialization has had a fair chance to finish.