# 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.21 or superior. - git , to download this repo. - write "go build" - ./zoreide & Configuration contains: ``` { "MulticastConfig": { "MIpAddr": "239.0.0.19", "MPort": "9898", }, "InterfaceConfig": { "ExistingInterface": "eth0", "BridgeIpCIDR": "10.0.1.1/24" }, "debug": false } ``` 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.~ DONE. - 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. - wether you want debug logs or not. # 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 with less than 20 servers. I want a floating , HA IP without this.