Kube-probe HTTP probe failed with status code 405

The application does not allow the HTTP method used by the probe.

Understanding Kube-probe

Kube-probe is a diagnostic tool used within Kubernetes to monitor the health of applications running in pods. It helps ensure that applications are running smoothly by periodically checking their status through various types of probes, such as HTTP, TCP, and command-based probes. These probes are essential for maintaining the reliability and availability of services in a Kubernetes cluster.

Identifying the Symptom

One common issue that users encounter with Kube-probe is the error message: HTTP probe failed with status code 405. This error indicates that the HTTP probe sent a request to the application, but the application responded with a 405 status code, meaning the HTTP method used is not allowed.

What is a 405 Status Code?

The 405 Method Not Allowed status code is an HTTP response status code indicating that the request method is known by the server but is not supported by the target resource. This typically occurs when the HTTP method used in the probe (e.g., GET, POST) is not permitted by the application.

Exploring the Issue

The root cause of this issue is often related to the configuration of the HTTP probe in the Kubernetes deployment. The probe might be using an HTTP method that the application does not support. For instance, if the application only supports GET requests, but the probe is configured to use POST, it will result in a 405 error.

Common Scenarios

  • The application is configured to only accept certain HTTP methods.
  • The probe is incorrectly configured to use an unsupported HTTP method.

Steps to Fix the Issue

To resolve the HTTP probe failure with status code 405, you need to adjust the probe configuration to use an HTTP method that the application supports. Follow these steps:

Step 1: Review Application's Supported Methods

Check the application's documentation or source code to determine which HTTP methods are supported. Ensure that the method used by the probe aligns with these supported methods.

Step 2: Update the Probe Configuration

Edit the Kubernetes deployment configuration to modify the HTTP probe settings. You can do this by updating the YAML file used for the deployment. For example:

livenessProbe:
httpGet:
path: /healthz
port: 8080
httpHeaders:
- name: Custom-Header
value: Awesome
initialDelaySeconds: 3
periodSeconds: 3

Ensure that the httpGet method is set to a method supported by your application, typically GET.

Step 3: Apply the Changes

After updating the configuration, apply the changes to the Kubernetes cluster using the following command:

kubectl apply -f your-deployment-file.yaml

This command will update the deployment with the new probe configuration.

Additional Resources

For more information on configuring probes in Kubernetes, you can refer to the official Kubernetes documentation on Liveness, Readiness and Startup Probes. Additionally, understanding HTTP status codes can be beneficial, and resources like MDN Web Docs on HTTP 405 provide valuable insights.

By following these steps, you should be able to resolve the HTTP probe failure with status code 405 and ensure your application is properly monitored by Kube-probe.

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