使用replicated_log

时间:2016-03-13 19:52:32

标签: apache-zookeeper mesos mesosphere marathon

  • 测试环境:AWS上的多节点mesos 0.27.2集群(3 x主站,2 x从站,仲裁= 2)。
  • 使用zkCli.sh测试持久性并且工作正常。
  • 如果我用--registry=in_memory启动主人,它工作正常,主人选,我可以通过马拉松开始任务。
  • 如果我使用默认值(--registry=replicated_log),则群集无法选择主人:

https://gist.github.com/mitel/67acd44408f4d51af192

EDIT:显然问题是防火墙。对我的所有安全组应用了允许所有类型的规则,现在我有一个稳定的主人。一旦我弄清楚什么阻碍了通信,我就会在这里发布。

2 个答案:

答案 0 :(得分:5)

发现mesos主人还在5050上启动与其他主人的连接。将出口规则添加到主安全组后,群集稳定,主选举按预期发生。 firewall rules

更新:对于那些试图在mesos / zk / ..的各个组件之间构建内部防火墙的人 - 不要这样做。更好地设计安全性,如Mesosphere的DCOS

答案 1 :(得分:1)

首先,让我简要说明后代的旗帜意义。 --registry不影响领导者选举,它指定了注册表的持久性策略(Mesos跟踪应通过故障转移进行传输的数据)。 in_memory值不应在生产中使用,甚至可能在将来删除。

领袖选举由zookeeper执行。根据您的日志,您使用以下zookeeper集群:zk://10.1.69.172:2181,10.1.9.139:2181,10.1.79.211:2181/mesos

现在,从您的日志中,群集没有选择主节点,它实际上做了两次:


I0313 18:35:28.257139  3253 master.cpp:1710] The newly elected leader is master@10.1.69.172:5050 with id edd3e4a7-ede8-44fe-b24c-67a8790e2b79
...
I0313 18:35:36.074087  3257 master.cpp:1710] The newly elected leader is master@10.1.9.139:5050 with id c4fd7c4d-e3ce-4ac3-9d8a-28c841dca7f5

我不能说为什么领导者被选出两次,因为我还需要来自其他两位大师的日志。根据您的日志,最后选出的主人位于10.1.9.139:5050,这很可能不是您提供日志的那个。

我在日志中看到的一个可疑的事情是,相同的IP:端口的主ID不同。你知道为什么吗?

I0313 18:35:28.237251  3244 master.cpp:374] Master 24ecdfff-2c97-4de8-8b9c-dcea91115809 (10.1.69.172) started on 10.1.69.172:5050
...
I0313 18:35:28.257139  3253 master.cpp:1710] The newly elected leader is master@10.1.69.172:5050 with id edd3e4a7-ede8-44fe-b24c-67a8790e2b79