Kubernetes is a complex distributed system and at times hard to managers all running components within containers eco-system. In order for kubernetes to function properly all parts needs to be working properly.
If there is any fault in any part of system, kubernetes can automatically detect , check and fix the issue.
Liveness probes indicate if a container is running. Meaning, has the application within the container started running and is it still running? If you’ve configured liveness probes for your containers, you’ve probably still seen them in action. When a container gets restarted, it’s generally because of a liveness probe failing. This can happen if your container couldn’t startup, or if the application within the container crashed. The Kubelet will restart the container because the liveness probe is failing in those circumstances. In some circumstances though, the application within the container is not working, but hasn’t crashed. In that case, the container won’t restart unless you provide additional information as a liveness probe.
A readiness probe indicates if the application running inside the container is “ready” to serve requests. As an example, assume you have an application that starts but needs to check on other services like a backend database before finishing its configuration. Or an application that needs to download some data before it’s ready to handle requests. A readiness probe tells the Kubelet that the application can now perform its function and that the Kubelet can start sending it traffic.
There are three different ways these probes can be checked.
- ExecAction: Execute a command within the container
- TCPSocketAction: TCP check against the container’s IP/port
- HTTPGetAction: An HTTP Get request against the container’s IP/Port