High Availability daemon to share an IP around N servers.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Loweel 6502dfe8f5 First commit 11 months ago
vendor First commit 11 months ago
00.memory.go First commit 11 months ago
README.md first commit 11 months ago
conf.go First commit 11 months ago
go.mod First commit 11 months ago
go.sum First commit 11 months ago
interface.go First commit 11 months ago
main.go First commit 11 months ago
multicast.go First commit 11 months ago
orchestrator.go First commit 11 months ago
zoreide.json First commit 11 months ago

README.md

ZOREIDE

High Availability daemon to share an IP around N servers.

Zoreide is a daemon service you can use to share an IP among N servers. If the server owning the IP is down, another one will replace it. Differently than Keepalived, it allows N servers instead of just 2. Perfect for docker-swarm arrays.

The daemon uses Multicast in order to elect the node which will have the IP configured.

To use it, you need:

  • root access to the servers
  • a valid multicast IP address in your network. (otherwise you can use the ones in zoreide.json)
  • linux servers under the same router.

To compile it , you need:

  • golang compiler 1.4 or superior.
  • git , to download this repo.
  • write "go build"
  • ./zoreide &

Configuration contains:

{
  "MulticastConfig": {
    "MIpAddr": "239.0.0.19",
    "MPort": "9898",
    "MaxDatagramSize": 18
  },
  "InterfaceConfig": {
    "ExistingInterface": "eth0",
    "BridgeIpCIDR": "10.0.1.1/24"
  }
}

Where:

  • MIpAddr is the multicast address all the nodes will use to align.Must be the same on all nodes.

  • Mport: Multicast port to subscribe. Must be the same on all nodes.

  • MaxDataGramSize : obsolete, will be removed soon.

  • ExistingInterface: the name of your ingress interface (eth0, eno0 , enps18, whatever your system is using. This may be different node by node)

  • BridgeIpCidr: the IP address and mask you want to share among servers.

FAQ

  • why? Keepalived wasn't enough?

  • VRRP is ok, but it has just two states, active and passive. I want to have as much as nodes as I want.

  • why you need more than one server to share the IP?

  • because 6 is better than 2 for HA.

  • MetalLb under Kubernetes can achieve the same.

  • Nobody really needs kubernetes. I want a floating , HA IP without this.