commit 7f4b2b37a06b59daa4556ac24e0e1efd953dd037 Author: Loweel Date: Fri Jul 1 15:44:21 2022 +0200 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..5ec979e --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +# 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. +