13.1. Use a Liveness Probe#
In order to best maintain your pods, Kubernetes needs to know if a pod is alive or not. A liveness probe is an action that the Kubernetes system takes periodically to determine if a pod is working.
Tip
You can see examples of liveness probes in the Kubernetes documentation.
Since Django is a web application we can use a simple form of liveness probe: Having Kubernetes fetch a URL in our application. The configuration fragment shows how to configure the probe.
Add this to the container definition in deployment/deployment.yaml
in the pod specification under the spec.containers[0]
key:
livenessProbe:
httpGet:
path: /
port: 8000
httpHeaders:
- name: host
value: localhost
After you redeploy your app you should see a steady stream of connections. These are the liveness probes:
$ kubectl logs -f deployment.apps/mysite-deployment
Watching for file changes with StatReloader
[12/Jan/2024 00:11:14] "GET / HTTP/1.1" 200 487
[12/Jan/2024 00:11:24] "GET / HTTP/1.1" 200 488
[12/Jan/2024 00:11:34] "GET / HTTP/1.1" 200 488
[12/Jan/2024 00:11:44] "GET / HTTP/1.1" 200 488
[12/Jan/2024 00:11:54] "GET / HTTP/1.1" 200 487
...