mesos / elasticsearch

Elasticsearch on Mesos
Apache License 2.0
242 stars 90 forks source link

Run elasticsearch framework with Docker networking bridge mode #603

Open benfab opened 7 years ago

benfab commented 7 years ago

Hello,

The ES mesos framework works fine when deployed with the Docker host networking mode. Nevertheless, I am using Weave and would like to use the Docker Bridge networking mode for the following reasons:

  1. To consume the ES service like any regular MS service, using the Consul registered name
  2. Load balance the load across the ES nodes, with Consul
  3. Use the network isolation capabilities (VXLAN) from Weave
  4. Do not open ports on the mesos slave nodes - security constrain.

So far, I am struggling to get the scheduler running in bridge networking mode. From the log, it seems that the ES scheduler has some issues to communicate with Zookeeper, see the log extract:

[INFO] 2017-04-03 12:03:25,249 org.apache.mesos.elasticsearch.scheduler.state.ClusterState getTaskList - Unable to get key for cluster state due to invalid frameworkID.
java.io.IOException: Unable to get zNode
        at org.apache.mesos.elasticsearch.scheduler.state.SerializableZookeeperState.get(SerializableZookeeperState.java:51)

From the container, I am able to use the zkCli client to communicate with Zookeeper.

I have gathered some topics where this issue has been reported: https://github.com/mesos/elasticsearch/issues/416 (last post) https://github.com/mesos/elasticsearch/issues/560 https://groups.google.com/forum/#!topic/mesos-elasticsearch/_miOCpKg6Bo

I would love to heard from you what would be the best approach, first to run ES-scheduler with Docker Bridge mode, then the ES-executors.

andreaspeters commented 7 years ago

We have the same issue in my company. Well, we would like to hear too, what the best approach would be.