Apache Mesos的“主”节点是否可以与Mesos的“从属”节点共存于同一台机器上?同样(对于高可用性(HA)部署),Mesos“master”选中使用的Apache Zookeeper节点是否可以部署在与Mesos“slave”节点相同的机器上?
Mesos建议将3个“主人”用于HA部署,Zookeeper建议将5个节点用于其仲裁选举系统。将这些服务与Mesos的“奴隶”流程一起运行,而不是将8台机器提交给有效的“非生产性”任务,这将是一件好事。
如果这样的设置可行,这种设置的优点/缺点是什么?
谢谢!
答案 0 :(得分:30)
您绝对可以在同一节点上运行master,slave和zk进程。您甚至可以在同一节点上运行多个主进程和从进程,前提是您为每个进程提供了唯一的端口,但这只对测试集群有用。
通常我们建议在与主服务器相同的节点上运行ZK,但是如果你有额外的ZK,你可以在从服务器上运行它们,或者你认为合适的混合和匹配,只要所有主/从/框架节点可以到达ZK节点,所有从属设备都可以到达主设备。
对于较小的集群(< 10个节点),在每个主服务器上运行从属进程是有意义的,特别是因为备用主服务器不会做很多事情。即使是小型集群的活动主服务器也只使用少量的CPU,内存和网络资源。只需确保调整该从属服务器上的--resources以考虑主服务器的资源使用情况。
一旦您的群集变得越来越大(特别是> 100个节点),进出主服务器的网络流量以及其CPU /内存利用率变得非常大,以至于您不希望在同一个服务器上运行mesos slave节点作为主节点。即使大规模地将ZK与你的主人共同定位也应该没问题。
您没有具体询问,但我还会讨论在哪里运行您的框架调度程序(例如Spark,Marathon或Chronos)。这些可以与任何其他组件共存,但它们只需要能够到达主节点和zk节点,因为与从节点的所有通信都通过主节点。有些客户在主节点上运行调度程序,有些客户在边缘节点上运行调度程序(因此用户无法访问从服务器),而其他客户则使用像Marathon这样的元框架作为Mesos任务在从服务器上运行其他调度程序。 p>