mesos slave增加属性
mesos+marathon是一个很好用的资源调度框架.
原先我们很多调度原则都是基于hostname来进行,但是这样其实很不方便。
其实很早mesos slave就支持使用attribute了。
首先需要在mesos slave服务器上增加相应的attribute
1 | echo "rack:bj-h;type:v4c;internet:no" > /etc/mesos-slave/attriburtes |
如果这个服务器上还运行着对应容器,那我们先挪走这些容器。然后重启mesos-slave进程
1 | sudo rm -rf /data/apps/mesos-slave/data/meta/slaves/latest |
这个时候应该可以在进程里看到对应的attribute了。如果发现起不来,那看下日志,看网上有人说在某些版本里会有问题
不知道从哪个版本开始,当mesos-slave设置attributes属性时,无法设置,需要添加一个属性:
1 | echo "additive" > /etc/mesos-slave/reconfiguration_policy |
然后再设置attributes就可以了。
然后我们就可以在marathon里定义自己想要的服务了。比如我随便搞一个测试的
1 | { |
这里就是指定运行在bj-h这个rack上。当然这里CLUSTER还有很多写法,具体可以参考: https://mesosphere.github.io/marathon/docs/constraints.html
- CLUSTER
- LIKE
- UNLIKE
- GROUP_BY
- MAX_PER
- UNIQUE
- IS
这几个放一起可以玩的花样会特别多的。