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.

Master

Kube-probe

in Minutes — Grab the Ultimate Cheatsheet

(Perfect for DevOps & SREs)

Most-used commands
Real-world configs/examples
Handy troubleshooting shortcuts
Your email is safe with us. No spam, ever.

Thankyou for your submission

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

Kube-probe

Cheatsheet

(Perfect for DevOps & SREs)

Most-used commands
Your email is safe with us. No spam, ever.

Thankyou for your submission

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

MORE ISSUES

Made with ❤️ in Bangalore & San Francisco 🏢

Doctor Droid