【问题标题】:Can Mesos 'master' and 'slave' nodes be deployed on the same machines?Mesos 的“主”和“从”节点可以部署在同一台机器上吗?
【发布时间】:2014-12-23 05:16:05
【问题描述】:
Apache Mesos 的“主”节点能否与 Mesos 的“从”节点位于同一台机器上?同样(对于高可用性 (HA) 部署),用于 Mesos“主”选举的 Apache Zookeeper 节点能否部署在与 Mesos“从”节点相同的机器上?
Mesos 建议将 3 个“主节点”用于 HA 部署,Zookeeper 建议将 5 个节点用于其仲裁选举系统。最好让这些服务与 Mesos 的“从属”进程一起运行,而不是让 8 台机器有效地执行“非生产性”任务。
如果这样的设置是可行的,那么这样的设置的优点/缺点是什么?
谢谢!
【问题讨论】:
标签:
apache-zookeeper
mesos
mesosphere
【解决方案1】:
你绝对可以在同一个节点上运行一个 master、slave 和 zk 进程。你甚至可以在同一个节点上运行多个主从进程,只要你给它们每个唯一的端口,但这仅对测试集群有用。
通常我们建议在与您的主节点相同的节点上运行 ZK,但如果您有额外的 ZK,您当然可以在从节点上运行它们,或者您认为合适的混合搭配,只要所有主节点/从节点/ framework节点可以到达ZK节点,所有slave都可以到达master。
对于较小的集群(
一旦您的集群变得更大(尤其是 >100 个节点),进出主节点的网络流量及其 CPU/内存利用率会变得非常重要,以至于您不想在与主节点相同的节点上运行 mesos 从节点掌握。即使在大规模的情况下,将 ZK 与您的 master 放在一起也应该没问题。
您没有特别问,但我也会讨论在哪里运行您的框架调度程序(例如 Spark、Marathon 或 Chronos)。这些可以与任何其他组件位于同一位置,但它们只需要能够到达主节点和 zk 节点,因为与从节点的所有通信都通过主节点。一些客户在主节点上运行调度程序,一些在边缘节点上运行它们(因此用户无权访问从属节点),还有一些客户使用像 Marathon 这样的元框架在从属节点上运行其他调度程序作为 Mesos 任务。