# Kubernetes Lifecycle – Probes
Probes are Kubernetes mechanisms that periodically perform diagnostics on running containers to determine if they are healthy and operating correctly:
1. **Startup Probe**: Startup probes are used to determine if a container application has started successfully. They are particularly useful for applications that have a slow startup time, as they prevent Kubernetes from killing the container too early while it's still starting up. If a startup probe fails, Kubernetes will not start the liveness or readiness probes and will continue to check the startup probe until it succeeds or reaches a timeout limit. Once the startup probe succeeds for the first time, it will not be checked again
2. **Liveness Probe**: Liveness probes determine if a container is alive (i.e., still running). If a liveness probe fails, Kubernetes will kill the container and the container will be subjected to its restart policy
- When this probe fails repeatedly (based on configured thresholds), Kubernetes will attempt to restart it by killing and recreating it. If [[Lifecycle – Hooks#Termination|graceful termination]] (using *SIGTERM*) doesn't work or takes too long, *SIGKILL* is issued, and exit code **137** (128+9) is returned
> [!info] This code is also returned if a container exceeds its configured resource limits – for example, running out of memory (OOM).
3. **Readiness Probe**: Readiness probes determine if a container is ready to service requests. If a readiness probe fails, Kubernetes will stop sending traffic to the pod until it passes the readiness check again
## References
- [Configure Liveness, Readiness and Startup Probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)