When Updates Go Wrong: What the CrowdStrike Incident Teaches Us
We’ve all been there—you’re working, and suddenly, your apps or tools stop working. Recently, this …
Health check probes, a Kubernetes concept to determine if a container in a pod is running and serving traffic or not, aka healthy or not. 😃
Liveness Probe
- To check whether the container is running and is used to restart the container.Readiness Probe
- To check whether the container is ready to serve traffic and is used to stop sending traffic.Startup Probe
- To check whether the container has started up for the first time and is used to restart the container.Legacy Applications may contain slow starting containers that needs added time on their initialization, to address this problem we configure the startup probes.
If my application takes 3 mins to finish startup during worst case scenario, then we configure the startupProbe to reflect this as below.
startupProbe:
httpGet:
path: /healthz
port: 8080
failureThreshold: 30
periodSeconds: 6
How 3 mins you ask 😕, failureThreshold * periodSeconds = 30 * 6 = 180 secs = 3 min.
🤓
Health check probes are defined in the deployment configuration file of your application under pod’s template spec field.
apiversion: myDemoApplication/v1
kind: Deployment
metadata:
name: demo-deployment
spec:
replicas: 1
selector:
matchLabels:
app: my-demo-app
template:
metadata:
labels:
app: my-demo-app
spec:
containers:
- name: demo-app-container
image: demo-app-container:latest
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 15
periodSeconds: 20
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
In the above sample deployment file, the liveness probe and the readiness probe is defined using an HTTP GET
request to the /healthz
and /ready
endpoint respectively on port 8080. You can also define a TCP
or gRPC
livelness probes as well.
initialDelaySeconds and periodSeconds are only couple of fields that is defined for probes in this sample-deployment.yaml
. We can use other fields like timeoutSeconds, successThreshold, failureThreshold and terminationGracePeriodSeconds. To learn what each field signifies you can refer here
.
If you want to ensure the stability and reliability of your application in Kubernetes consider defining the health check probes. Configuring them can help you to monitor the health of your application and take necessary actions in case if something goes wrong, which inturn leads to having a smooth operating, high availability application in a Kubernetes environment.
We’ve all been there—you’re working, and suddenly, your apps or tools stop working. Recently, this …
In programming, the concept of a one-size-fits-all language is a fallacy. Different languages offer …
Modern software development often leverages distributed architectures to achieve faster development cycles …
Finding the right talent is pain. More so, keeping up with concepts, culture, technology and tools. We all have been there. Our AI-based automated solutions helps eliminate these issues, making your teams lives easy.
Contact Us