65 lines
1.7 KiB
Markdown
65 lines
1.7 KiB
Markdown
# 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.
|
|
|