Sorry for the spam, trying to migrate to a Rancher deployment and hitting various pain points.
I have an HTTP load balancer specified as follows (some hosts changed):
HTTP: ports: - '443' restart: always external_links: - Perceptron/Blog:Blog - Perceptron/App:App labels: io.rancher.loadbalancer.target.Perceptron/Blog: perceptronapp.com/blog=9778 io.rancher.loadbalancer.ssl.ports: '443' io.rancher.loadbalancer.target.Jenkins: ci.my.software=8080 io.rancher.loadbalancer.target.Perceptron/App: perceptronapp.com=3000 tty: true image: rancher/load-balancer-service links: - Jenkins:Jenkins stdin_open: true
The ci.my.software host works just fine. The perceptronapp.com ones don’t.
In particular, I’m trying to hit perceptronapp.com/blog. I always get a “503: No servers are available” error.
I have verified that the Blog service is up. I can curl the IP returned by “docker inspect”. If I hit a link that isn’t found, the Blog container throws a 404 in its logs. If I directly curl an invalid link, I see this log message. If I attempt to hit an invalid link through the load balancer, I see nothing in these logs.
Also, I notice a few seconds of delay between when I curl perceptronapp.com/blog and when I get the 503. There is no such delay when I hit a my.software host.
I’ve also removed App and the path from Blog such that it is reachable at the root. No change. In my default environment, I have a variety of services keyed off of hostnames but they’re all in the same stack.
Now I do notice that, despite the fact that Blog exposes 9778 and is reachable via its Docker IP, that it is not reachable on its overlay IP:9778. Other containers are. The port is definitely exposed and appears so in Rancher, but for some reason it doesn’t get mapped to the overlay network. Why would a port be reachable at its Docker IP but not at its overlay IP?
Am I doing something wrong here? What else can I try? I was successfully running these containers on a single host with a Dockerized web server, so I’m confused as to why they don’t work on the overlay network.