What if your app could tell you when it's sick, all by itself?
Why Exec probe configuration in Kubernetes? - Purpose & Use Cases
Imagine you have a web app running in a container, and you want to check if it's healthy by manually logging into the container and running commands to see if it works.
This manual checking is slow, needs you to connect every time, and you might miss problems if you don't check often. It's easy to forget or make mistakes, causing downtime.
Exec probe configuration lets Kubernetes automatically run a command inside your container regularly to check if it is healthy. This way, the system knows when to restart or fix the app without you lifting a finger.
kubectl exec -it mypod -- curl http://localhost:8080/healthlivenessProbe:
exec:
command:
- curl
- -f
- http://localhost:8080/health
initialDelaySeconds: 10
periodSeconds: 5It enables automatic, reliable health checks inside containers, so your apps stay running smoothly without manual intervention.
A shopping website uses exec probes to check if its payment service is working. If the check fails, Kubernetes restarts the service instantly, avoiding lost sales.
Manual health checks are slow and error-prone.
Exec probes automate health checks by running commands inside containers.
This keeps apps healthy and reduces downtime automatically.
Practice
exec probe in Kubernetes?Solution
Step 1: Understand exec probe functionality
An exec probe runs a command inside the container to check its health status.Step 2: Compare with other options
Options A, B, and D relate to scheduling, networking, and storage, not health checks.Final Answer:
To run a command inside a container to check if it is healthy -> Option DQuick Check:
Exec probe = runs command inside container [OK]
- Confusing exec probe with port exposure
- Thinking exec probe schedules pods
- Mixing exec probe with storage management
Solution
Step 1: Check exec command format
The command must be an array of strings, e.g., ['cat', '/tmp/healthy'].Step 2: Validate YAML structure
livenessProbe:\n exec:\n command: ['cat', '/tmp/healthy']\n initialDelaySeconds: 5\n periodSeconds: 10 correctly uses the array syntax and includes initialDelaySeconds and periodSeconds.Final Answer:
Correct exec probe with command array and delays -> Option AQuick Check:
Exec command = array of strings [OK]
- Using a single string instead of array for command
- Confusing exec probe with httpGet probe
- Omitting required indentation or keys
livenessProbe:
exec:
command: ['test', '-f', '/tmp/healthy']
initialDelaySeconds: 3
periodSeconds: 5
What happens if the file /tmp/healthy does not exist inside the container?Solution
Step 1: Understand exec probe command
The command 'test -f /tmp/healthy' returns success if the file exists, failure if not.Step 2: Effect of probe failure
If the probe fails repeatedly, Kubernetes restarts the container to recover.Final Answer:
The probe fails and Kubernetes restarts the container after retries -> Option CQuick Check:
Missing file = probe fails = restart [OK]
- Assuming probe passes if file missing
- Thinking container deletes without restart
- Believing probe ignores errors silently
Solution
Step 1: Check exec command syntax
Exec probe commands must be an array of strings; a single string causes probe failure.Step 2: Understand probe failure effect
If the probe fails, the pod is not marked ready, so it never becomes ready.Final Answer:
Exec command missing array syntax causes probe failure -> Option AQuick Check:
Exec command array syntax missing = probe fails [OK]
- Ignoring command array syntax errors
- Blaming initialDelaySeconds without checking command
- Confusing readiness with resource limits
['/bin/check.sh'], retries every 5 seconds, and fails after 3 unsuccessful attempts. Which is the correct YAML snippet?Solution
Step 1: Verify command syntax and initial delay
Command must be an array; initialDelaySeconds must be 10 as required.Step 2: Check periodSeconds and failureThreshold
PeriodSeconds should be 5 for retry every 5 seconds; failureThreshold 3 means fail after 3 tries.Final Answer:
Correct YAML with command array, initialDelaySeconds 10, periodSeconds 5, failureThreshold 3 -> Option BQuick Check:
Command array + delays + failureThreshold correct = livenessProbe:\n exec:\n command: ['/bin/check.sh']\n initialDelaySeconds: 10\n periodSeconds: 5\n failureThreshold: 3 [OK]
- Using string instead of array for command
- Swapping periodSeconds and initialDelaySeconds values
- Setting failureThreshold too low or missing
Ready to prove it?
Pass the test and this pattern moves unknown
