Debug Your Infrastructure

Get Instant Solutions for Kubernetes, Databases, Docker and more

AWS CloudWatch
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Pod Stuck in CrashLoopBackOff
Database connection timeout
Docker Container won't Start
Kubernetes ingress not working
Redis connection refused
CI/CD pipeline failing

Kube-probe Readiness probe failed: dependency service down

A dependent service required by the application is not available.

Understanding Kube-probe

Kube-probe is a diagnostic tool used in Kubernetes to check the health of containers running within pods. It helps ensure that applications are running smoothly by performing liveness and readiness checks. These probes are crucial for maintaining the desired state of applications and ensuring high availability.

Identifying the Symptom

One common symptom that developers encounter is the readiness probe failure, often indicated by an error message such as: Readiness probe failed: dependency service down. This message suggests that the application is not ready to serve traffic due to an unavailable dependent service.

What You Observe

When this issue occurs, you may notice that the application is not receiving traffic, and the pod status may show as NotReady. This can lead to disruptions in service availability and user experience.

Exploring the Issue

The readiness probe failure indicates that a service required by your application is not accessible. This could be due to network issues, the service not being started, or incorrect service configurations. The readiness probe checks if the application is ready to handle requests, and if it fails, Kubernetes will not route traffic to the pod.

Common Causes

  • Network connectivity issues between the application and the dependent service.
  • The dependent service is not running or has crashed.
  • Misconfiguration in service endpoints or DNS issues.

Steps to Fix the Issue

To resolve the readiness probe failure, follow these steps:

1. Check Dependent Services

Ensure that all dependent services are running. You can use the following command to check the status of services:

kubectl get services

Verify that the services your application depends on are listed and running.

2. Verify Network Connectivity

Use the following command to check network connectivity between your application pod and the dependent service:

kubectl exec <pod-name> -- curl -I http://<service-name>:<port>

This command attempts to connect to the service from within the pod. If it fails, investigate network policies or DNS configurations.

3. Inspect Logs

Check the logs of both your application and the dependent service for any errors or warnings:

kubectl logs <pod-name>

Look for any indications of why the service might be unavailable or why the probe is failing.

4. Update Readiness Probe Configuration

If the issue persists, review and update the readiness probe configuration in your deployment YAML file. Ensure the probe is correctly configured to check the right endpoints and ports.


readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 5
periodSeconds: 10

Further Reading

For more information on configuring probes in Kubernetes, refer to the official Kubernetes documentation. Additionally, explore Kubernetes Services to understand how services are managed and accessed.

Evaluating engineering tools? Get the comparison in Google Sheets

(Perfect for making buy/build decisions or internal reviews.)

Most-used commands
Your email is safe thing.

Thankyou for your submission

We have sent the cheatsheet on your email!
Oops! Something went wrong while submitting the form.

MORE ISSUES

Made with ❤️ in Bangalore & San Francisco 🏢

Doctor Droid