Add HTTP health check to the helloworld deployment
We will take our existing helloworld deployment, and add a readiness and liveness probe healthchecks.
apiVersion: apps/v1kind: Deploymentmetadata: name: helloworld-deploymentspec: selector: matchLabels: app: helloworld replicas: 1 # tells deployment to run 1 pods matching the template template: # create pods using pod definition in this template metadata: labels: app: helloworld spec: containers: - name: helloworld image: karthequian/helloworld:latest ports: - containerPort: 80
Readiness Probe
A readiness probe is used to know when a container is ready to start accepting traffic.
The yaml has the following parameters:
readinessProbe: # length of time to wait for a pod to initialize # after pod startup, before applying health checking initialDelaySeconds: 10 # Amount of time to wait before timing out initialDelaySeconds: 1 # Probe for http httpGet: # Path to probe path: / # Port to probe port: 80
Liveness Probe
A liveness probe is used to know when a container might need to be restarted.
It is used to perform periodic check on a container to make sure it is still healthy.
A liveness probe yaml has the following parameters that need to be filled out:
livenessProbe: # length of time to wait for a pod to initialize # after pod startup, before applying health checking initialDelaySeconds: 10 # Amount of time to wait before timing out timeoutSeconds: 1 # Probe for http httpGet: # Path to probe path: / # Port to probe port: 80
Thus, our deployment yaml now becomes:
apiVersion: apps/v1kind: Deploymentmetadata: name: helloworld-deployment-with-probespec: selector: matchLabels: app: helloworld replicas: 1 # tells deployment to run 1 pods matching the template template: # create pods using pod definition in this template metadata: labels: app: helloworld spec: containers: - name: helloworld image: karthequian/helloworld:latest ports: - containerPort: 80 readinessProbe: # length of time to wait for a pod to initialize # after pod startup, before applying health checking initialDelaySeconds: 10 # Amount of time to wait before timing out initialDelaySeconds: 1 # Probe for http httpGet: # Path to probe path: / # Port to probe port: 80 livenessProbe: # length of time to wait for a pod to initialize # after pod startup, before applying health checking initialDelaySeconds: 10 # Amount of time to wait before timing out timeoutSeconds: 1 # Probe for http httpGet: # Path to probe path: / # Port to probe port: 80