Howdy! I’m trying out the k8s beta and it’s been great so far. I have two clusters, both with load balancers sitting in front. One of the load balancers is working great and has had no issue. The second hasn’t been in a healthy state since I created it. The droplets are hosting a third party app that doesn’t respond to /
, but it does have another healthcheck URL.
The solution it seems was to put nginx in front of the app, which I’ve done and it responds with a 200 on /
, but the load balancer still thinks the droplet is unhealthy. I’ve tried various configurations for TCP and HTTP checks on various ports.
Using kubectl proxy
, I’ve been able to get a 200 response from the /
endpoint, so I’m not really sure what else I need to do. Any help would be great. For reference, here’s my nginx and k8s service config: https://gist.github.com/mike-engel/a1c11cd6d0edcdab6fd912619b33d972
Thanks!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
I think I have this solved. The solution, I think, involved two parts. The first is that I added a selector to my service config that targeted the pod via a label. The second was that my nginx config was setting the server_name
to localhost
rather than 0.0.0.0
. I think 0.0.0.0
is required for k8s deployments.
@unixynet Thansk for the reply! With my nginx config, however, running a
HEAD /
successfully returns a 200. Here’s the output from cURL.The LB does a HEAD. Make sure your proxy returns the proper HTTP code for that or can translate it to a GET.