| 
				
					
						 | 
			||
|---|---|---|
| vendor | ||
| .gitignore | ||
| 00.memory.go | ||
| LICENSE | ||
| README.md | ||
| conf.go | ||
| go.mod | ||
| go.sum | ||
| interface.go | ||
| main.go | ||
| multicast.go | ||
| orchestrator.go | ||
| zoreide.json | ||
		
			
				
				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.21 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.