Host independent Loadbalancer


I’m searching for a multi host LB solution to be not dependent on one docker / rancher host.
I have an idea, but don’t know if it would possible or easy to do (with rancher).

I have one location with multiple hosts as rancher environment. The LB should be global / host independent, but have to proxy containers running on different hosts.

Instead of a HA setup I try to make it possible to run a single LB with a docker custom network (routed public ip address / subnet). If the current host of the LB is down, rancher server should start it at another host with the same routed, public ip address. So the LB should be move to a active host if the current host goes down.

Is such a solution possible or should I setup something like a Keepalived HA with VIP?


In simple words:
I’m searching for a solution to be independent from a single host. Backend containers running on hosts scheduled by Rancher, but the public ip address (resolved by DNS / running the LB) shouldn’t be host dependent.

I’m not entirely sure what you are asking, but if you schedule your rancher load balancer using the scheduling rules to run on every host, it works just fine. In our case we have AWS elastic load balancers in front of this and all the hosts are added as backends and traffic is routed properly and with high availability.

You can schedule the rancher load balancer to run on every host in the Scheduling tab in the GUI or using a label in the docker-compose.yml file.

I think I searching for such a solution, but with my bare metal servers.

The Rancher LB is host dependent (local public IP).
It looks like I need to setup HA (i.e. Keepalived) and use VIP instead of the local host IP.

Example with a small setup:
2 docker / rancher hosts running backend services which are published by a Rancher LB.

Host-A = LB-A -> Backends running Host-A
Host-B = LB-B -> Backends running Host-B

But I need to build a HA LB

LB (VIP) -> Backends Host-A and Host-B

The LB VIP is a public ip address reachable from outside (public transfer net).

I’ve been hunting for this myself.

I’ve only been able to come up with the Keepalived + floating IP thing…

So for now I’m just setting up my thing without and once I get that all working I’ll tackle this keepalived approach and hopefully figure out something simple to manage :slight_smile:

If it gets too hard to do it the docker way I’ll just spin up 2x VMs and do the bare metal way :confused: