Probes: Allow you to customize how Kubernetes determines the status of your containers.
Liveness probe: Indicates whether the container is running properly, and governs when the cluster will automatically stop or restart the container.
- If the containers crash and stop running, Kubernetes is automatically going to detect that it will restart the container, but sometimes you need a little bit of customization that you may need to detect to wheater the container is healthy.
Readiness probe: Indicates whether the container is ready to service requests, and governs whether requests will be forwarded to the pod.
- It is similar to Liveness probe, but while Liveness probe detects the current health status of the pod, Readiness probe detects whether or not the pod to ready to receive the request.
- * A lot of containers take time to start up even once the container is running it may take a little bit of time before the container is actually ready to start process requests from the users.
Liveness and readiness probes can determine container status by doing things like running a command or making an http request.
apiVersion: v1 kind: Pod metadata: name: my-liveness-pod spec: containers: - name: myapp-container image: busybox command: ["sh", "-c", "echo Hello, Kubernetes! && sleep 36"] livenessProbe: exec: command: - echo - testing initialDelaySeconds: 5 periodSeconds: 5
- After 36 seconds, complete the container, however, because of LivenessProbe it will restart the container.
NAME READY STATUS RESTARTS AGE my-liveness-pod 1/1 Running 2 2m
- The number of RESTARTS will continually increase.
apiVersion: v1 kind: Pod metadata: name: my-readiness-pod spec: containers: - name: myapp-container image: nginx readinessProbe: httpGet: path: / port: 80 initialDelaySeconds: 5 periodSeconds: 5