Description
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:
- To consume the ES service like any regular MS service, using the Consul registered name
- Load balance the load across the ES nodes, with Consul
- Use the network isolation capabilities (VXLAN) from Weave
- 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:
#416 (last post)
#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.