Apache Mesos + Docker + Karaf地窖集群

我正在使用Marathon启动和运行Mesos Cluster(1个主站和2个从站)。 我使用docker作为Mesos / Marathon中的容器。 我有一个卡拉夫docker,将作为一个群集马拉松推出。 我打算使用Fabric of Cellar作为Karaf的聚类解决scheme。 我的问题是

  1. 由于我在马拉松中使用随机端口映射,所以我不知道如何让Hazel-cast的自动发现工作。 与随机的奴隶随机docker实例。 任何build议或解决scheme/方法

  2. 这可以很容易地实现使用保险丝面料,而不是地窖 – 我完全是盲目的。 请提供一些关于Karaf的链接/见解

提前致谢

回答第二项

fabric8 v2是云端技术架构,如Kubernetes和Docker。 这使得Fuse Fabric与Tomorrows技术堆栈适配得更好,而不是绑定到Java和OSGi上。

罗伯·戴维斯(Rob Davies)在博客上发表了一些关于这一变化的背景

因此,使用基于docker的模型和Mesos / Kubernetes等云基础架构,然后让他们处理集群等。 并保持您的应用程序(作为docker图像)更简单。 你不需要使用Karaf酒窖/保险丝织物v1等。他们从内部与你的应用程序共同集群。 kubernetes从外面这样做,完全分开。

顺便说一句,那么kubernetes服务的岩石。 James Strachan最近为开发者写了一篇关于kubernetes的博客文章

如果使用kubernetes服务,则只需使用OS环境variables即可查找hazelcast群集的IP和端口号。

好吧,也许这是漫无目的的。 但是我build议检查一下kubernetes / fabric8 / docker等等,如果你正在build立一个新的平台,那就避免使用Karaf Cellar或Fuse Fabric v1等Java集群。

许多人已经成功地使用HAProxy和Marathon的服务端口来实现整个集群的可发现性。 请参阅https://mesosphere.github.io/marathon/docs/service-discovery-load-balancing.html

您也可以尝试使用基于DNS的服务发现的mesos-dns,即使没有Marathon也可以使用该服务。 见http://mesosphere.github.io/mesos-dns/