【问题标题】:Mesos slave not seen from web ui从 web ui 看不到 Mesos 从站
【发布时间】:2015-07-08 20:17:05
【问题描述】:

我正在构建一个 Ansible 配方来部署 mesos/marathon 集群 (https://github.com/gridpocket/ansible-mesos-cluster)。

一切都设置好后,mesos 和 marathon ui 就启动了,但我有 2 个问题:
- 从 mesos ui 我看不到任何已注册的奴隶
- 相同的 ui 还指示“当前没有主控...”

设置如下:
- 3 个 mesos 大师(192.168.1.191、192、193):每个正在运行的 mesos-master、zookeeper、马拉松
- 3 个 mesos slave (192.168.1.194, 195, 196):每个运行 mesos-slave, docker

从站配置

在每个从站中:

/etc/mesos/zk:    
zk://192.168.1.191:2181,192.168.1.192:2181,192.168.1.193:2181/mesos

主机配置

在每个主机上:

/etc/mesos/zk: 
zk://192.168.1.191:2181,192.168.1.192:2181,192.168.1.193:2181/mesos

/etc/mesos-master/quorum:      
2

/etc/mesos-master/hostname and /etc/mesos-master/ip
IP_OF_THE_MASTER

我在配置中遗漏了什么吗?

编辑

我重建了整个集群并更正了 zookeeper 配置 (dataDir)。现在,
- mesos 主界面正在工作并指示主节点
- 马拉松用户界面正在工作

在从机上,mesos-slave 进程一启动就停止。

mesos-slave 日志对这个问题不是很详细:

Log file created at: 2015/07/09 15:51:15
Running on machine: vagrant-ubuntu-trusty-64
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
I0709 15:51:15.487542  8133 logging.cpp:172] INFO level logging started!
I0709 15:51:15.488011  8133 main.cpp:156] Build: 2015-05-05 06:15:50 by root
I0709 15:51:15.488081  8133 main.cpp:158] Version: 0.22.1
I0709 15:51:15.488137  8133 main.cpp:161] Git tag: 0.22.1
I0709 15:51:15.488190  8133 main.cpp:165] Git SHA: d6309f92a7f9af3ab61a878403e3d9c284ea87e0

编辑 2

当我手动启动slave时,提示zk字符串,slave正确启动:

sudo /usr/sbin/mesos-slave --master=zk://192.168.1.191:2181,192.168.1.192:2181,192.168.1.193:2181/mesos

但是“sudo service mesos-slave start”不能启动slave。

编辑 3

我已在 ansible playbook 中将状态从“最新”更改为“当前”:

- name: install mesos + zookeeper
  apt: name=mesos state=present

- name: install marathon
  apt: name=marathon state=present

现在好了,从机在 mesos UI 中显示为激活状态。

是不是版本问题?

【问题讨论】:

  • 介意共享主日志吗?
  • “No master is currentlyleading...”错误信息的问题现在似乎解决了(zookeeper配置问题)。由于无法启动 mesos-slaves 进程,我已使用从属日志更新了问题。
  • 要获取更详细的日志,请使用 GLOG_v=1(甚至 2)启动从站。您可以将其添加到您的命令前,例如 GLOG_v=1 ./bin/mesos-slave --master=[...] 或将其添加到 /etc/default/mesos-slave/

标签: ansible ansible-playbook mesos mesosphere


【解决方案1】:

任何 Mesos 命令行参数都可以设置为像 /etc/mesos-slave/master(对于 mesos-slave --master)这样的文件。这就是服务启动找到 Mesos 参数的方式。

您也可以使用/etc/default/mesos-slave/(或-master/)作为环境变量,或使用/etc/mesos/ 作为一般参数。

【讨论】:

  • 我已经运行了从站:“sudo /usr/sbin/mesos-slave --master=zk://192.168.1.191:2181,192.168.1.192:2181,192.168.1.193: 2181/mesos”,它似乎运行良好,只是它在 mesos 控制台中显示为“停用”,然后无法通过马拉松部署任务。我刚刚使用 /etc/mesos-slave/master (包含与上面相同的主字符串)进行了测试,但是“sudo service mesos-slave start”也不起作用。
  • 解释你所说的“不起作用”是什么意思。提供日志(或要点链接),以便我们帮助您调试。在 mesos 控制台中显示已停用的从站并不“正常”,因为这意味着从站连接/注册到主站时出现问题,这意味着没有资源可供 Marathon 运行任务。
  • Adam,在 mesos-master UI 中,slave 没有被 master 看到的部分看起来很好(这次是真正的“很好”),因为它们以 astivated 状态出现。从 Marathon UI 创建任务(sleepalittle:sleep 30)时,它仍处于“部署”阶段。马拉松日志文件并没有真正帮助(pastie.org/private/pp7wtjoiwvic7a1tkrdgtq
  • 从 Marathon 日志中,我没有看到它获得任何资源报价。你能检查 Mesos UI 看看它是否认为 Marathon 已经注册了吗?也许检查 mesos-master 日志,看看它是否正在向 Marathon 的 frameworkId 发送报价。
  • 从mesos ui来看,marathon框架是registerer。我已经多次重新部署了集群,最后一次它运行良好(当主服务器位于列表中的第一个 IP 时)。虽然我没有更改 Ansible 配方,所以我再次重新部署了整个东西,这次 master 是列表中的第三个,并且部署不起作用......最后一个案例中的 mesos-master 节点:pastie.org/10288558
【解决方案2】:

当我在安装 mesos 时使用 Ansible playbook 中的“当前”状态而不是“最新”状态时,可以在 mesos UI 中看到从站被激活。

- name: install mesos + zookeeper
  apt: name=mesos state=present

- name: install marathon
  apt: name=marathon state=present

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    相关资源
    最近更新 更多