yyyar / gobetween

:cloud: Modern & minimalistic load balancer for the Сloud era
http://gobetween.io
Other
1.94k stars 211 forks source link

HA Support #227

Open rannaot opened 5 years ago

rannaot commented 5 years ago

Hi

I wonder if there is a way to support HA for the GoBetween itself ? What happens when GoBetween itself goes down ?

I look for a windows solution without NLB, this led me to GoBetween, but it becomes a bottleneck for an HA solution I want to build... the GoBetween must be HA as well....

Thanks, Ran

nuttysquirrel commented 5 years ago

my solution to this scenario was to bind to a loopback address, and use dynamic routing. to read up on it, have a look at 'anycast' solutions.

ryanbreed-tp commented 5 years ago

I've been using an ExecPreStart in the systemd unit to lock a consul key and add all the VIPs. Seems to work reasonably well, but i've also used the loopback+dynamic routing method.

rannaot commented 5 years ago

my solution to this scenario was to bind to a loopback address, and use dynamic routing. to read up on it, have a look at 'anycast' solutions.

Can you please direct me to some source that explain it in more details? You configured 'anycast' ip address in the routers ?

Would appreciate if you can elaborate on that.

nuttysquirrel commented 5 years ago

one way to do it is to have two servers advertise the same address on their loopback interface. for example; serverA has eth0 as 10.1.1.1 and loop0 as 10.255.1.1 (<- the anycast address) serverB has eth0 as 10.2.2.2 and loop0 as 10.255.1.1 (<- the anycast address) both servers have the same set up, and can answer queries to 10.255.1.1. if either server is "up", it uses a dynamic routing protocol to tell the network "10.255.1.1 is available from me!". you have redundancy because either server can do the work, and either can go down at any time because the other will take the slack.

wiki article; https://en.wikipedia.org/wiki/Anycast this isnt a bad overview; http://ddiguru.com/blog/118-introduction-to-anycast-dns

hope that helps... plenty of other examples out there :)

KnicKnic commented 4 years ago

@rannaot another option would be to use Windows Server failover cluster. You could use gobetween.exe inside a "Generic Application" Resource. The only thing is you will have to copy gobetween.exe and your config file onto all of the nodes, or shared storage.

https://docs.microsoft.com/en-us/powershell/module/failoverclusters/add-clustergenericservicerole?view=win10-ps