I've a 3 node cluster on my local network, it works like a charm. I just want to add a 4th node, but on another nework.
But i'm not able to perform the discovery, my local master is well discovered by the remote node.
The handshake is OK, but after my local node use his local IP...
All nodes must be accessible to all other nodes at their publish address, which is written as {LOCAL_IP} in the log message you shared. It's not possible to have nodes which appear to have different addresses depending on whence you're talking to them: all the nodes need to be on the same network.
Thanks for your answers.
So it's not possible to make nodes talking together if they are not on the same subnet ?
The only alternative is Cross Cluster Replication ?
A decentralised node would not give you HA. A majority of master nodes always need to be available to achieve HA which means you would need to distribute your cluster across 3 zones/data centres.
That's not quite true, at least, it depends what you mean by "subnet". You need to configure your network so that it looks the same from every node's point of view.
OK, so it means that if I want to achieve that, i need to configure all my node with a public IP/Port as transport.publish_host.
At the end, my local node will have to perform a re-entry connection to talk ?
This is not a recommended approach, because latency between datacentres can cause unexpected issues with indexing and queries and general cluster activities.
That's the simplest option, but you can also do fancier things with a VPN or NAT too. That level of network engineering isn't really in scope for this forum, I expect you would benefit from finding some networking experts to ask instead.
Also as Mark observes you are putting your cluster stability in the hands of the cross-data-centre link. If it is unreliable or slow then your cluster will be unreliable or slow too.
I'm familiar with the networking stuff, that's my job
But the main idea was to not create a monster, if Elastic was able to do it without doing such a thing !
And if the perfs can become worth, it make non sense...
Cross Cluster Replication seems to be the right way... But not possible with a basic licence
ok you probably know a good deal more than I do about this then.
CCR is another option indeed, depending on what exactly you're trying to achieve. There's a good summary of what Elasticsearch needs for resilience in these docs.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.