【发布时间】:2018-07-09 02:42:09
【问题描述】:
我的情况是什么?
我有例如两个外部卡,可以在不关闭电脑电源的情况下插拔。 而这些卡片正是我想用 mesos 管理的资源。
目前,我使用attributes来管理它们:nodeKey:card1_key和nodeKey:card2_key属性注册到master以区分两张不同的卡。那么如果使用card1,我直接标记所有cpu,mem被用于mesos-agent1,那么master不会提供mesos-agent1给框架。
另外,如果我需要拔掉card1,我可以直接关闭mesos-agent1而不影响用于card2的mesos-agent2。
以上是我的场景,除了我有很多卡,我必须为每张卡设置很多 mesos-agent 之外,每个都可以正常工作。这会消耗一些内存。
当前解决方案命令:
卡 1:
docker run -d --net=host --name=mesos-agent1 --privileged \
-e MESOS_IP=$PC_IP \
-e MESOS_HOSTNAME=$PC_IP \
-e MESOS_PORT=$node_port \
-e MESOS_MASTER=zk://$SERVER_IP:2181/mesos \
-e MESOS_ATTRIBUTES="nodeKey:card1_key" \
-e MESOS_SWITCH_USER=0 \
-e MESOS_CONTAINERIZERS=docker,mesos \
-e MESOS_LOG_DIR=/var/log/mesos \
-e MESOS_WORK_DIR=/var/tmp/mesos \
-v "$(echo ~)/.dp/mesos-slave/log/mesos-$nodeKey:/var/log/mesos" \
-v "$(echo ~)/.dp/mesos-slave/tmp/mesos-$nodeKey:/var/tmp/mesos" \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /cgroup:/cgroup \
-v /sys:/sys \
-v $(which docker):/usr/bin/docker \
mesosphere/mesos-slave:1.3.0
卡2:
docker run -d --net=host --name=mesos-agent2 --privileged \
-e MESOS_IP=$PC_IP \
-e MESOS_HOSTNAME=$PC_IP \
-e MESOS_PORT=$node_port \
-e MESOS_MASTER=zk://$SERVER_IP:2181/mesos \
-e MESOS_ATTRIBUTES="nodeKey:card2_key" \
-e MESOS_SWITCH_USER=0 \
-e MESOS_CONTAINERIZERS=docker,mesos \
-e MESOS_LOG_DIR=/var/log/mesos \
-e MESOS_WORK_DIR=/var/tmp/mesos \
-v "$(echo ~)/.dp/mesos-slave/log/mesos-$nodeKey:/var/log/mesos" \
-v "$(echo ~)/.dp/mesos-slave/tmp/mesos-$nodeKey:/var/tmp/mesos" \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /cgroup:/cgroup \
-v /sys:/sys \
-v $(which docker):/usr/bin/docker \
mesosphere/mesos-slave:1.3.0
我的问题:
所以如果可能的话,我可以只向 mesos master 注册一个 mesos 代理,同时可以支持我的场景:
a) Card1 被使用,调度器框架可以将其标记为已使用,那么下一个资源提供将没有 card1 只提供 card2?好像--resources='cpus:24;gpus:2;mem:24576;disk:409600;ports:[21000-24000,30000-34000]',如果一个任务使用4 cpus,下次master只会提供20 cpus,但这不能用--attributes完成。但是 mesos 似乎只能负担得起程序员为--attributes 而不是--resources 定制的接口?
b) 如果我们需要拔掉card1或者添加一个新的card3,我们可以在不重启代理的情况下改变mesos-agent的一些参数,然后当前使用例如card2 不会受到影响?
任何可能的解决方案,或者我不得不忍受我目前的解决方案?
【问题讨论】:
标签: mesos mesosphere