We're looking into adding ES as part of our stack in our on-premise software that would be installed in enterprise environments. We're interested in utilising ES as part of a high availability requirement. Ideally, a customer could spin up another image of our software very easily.
We're in the early stages of investigating embedding ES (I understand this isn't officially supported) into our Java app, or at least running it in parallel on the server, so each instance of our software would include a running ES service.
Currently we have a setting in our software that the customer uses to identify the public fqdn of the service. This would typically be the address of a load balancer.
I was wondering if it would be possible to use this address to instruct ES to create a cluster?
Would the outcome be that the ES nodes would communicate via the load balancer (not acceptable), or would they be able to identify each other's direct IP to form a cluster (ideal)?
If this isn't possible, are there similar architectures that would be feasible?