Gocast is a tool that does controller BGP route advertisements from a host. It runs custom defined healthchecks and announces or withdraws routes (most commonly VIPs or Virtual IPs) to a BGP peer. The most common use case for this is anycast (vip) based load balancing for infrastructure services such as DNS, Syslog, etc. where several instances are available in geographically diverse regions that announce the same anycast VIP, and clients then get sent to the closest instance.
It is also useful for making services on distributed platforms routable. It’s a non-Kubernetes specific equivalent to MetalLB.
Installation
Run the following commands to build a binary for your current architecture:
go get -d github.com/mayuresh82/gocast
cd $GOPATH/src/github.com/mayuresh82/gocast
make
This will produce a gocast binary.
In the future, automated builds using goreleaser are planned. This will simplify installation using pre-built binaries and docker images.
Configuration
Check out Github for the full configuration information.
MagnaX Software