-
Notifications
You must be signed in to change notification settings - Fork 0
Mesos
李志强 edited this page May 22, 2017
·
7 revisions
- zookeeper
- master
- slave
- framework including scheduler and executor。
-
Mesos-master是整个系统的核心,负责管理接入mesos的各个framework(由frameworks_manager管理)和slave(由slaves_manager管理),并将slave上的资源按照某种策略分配给framework。
-
Mesos-slave负责接收并执行来自mesos-master的命令、管理节点上的mesos-task,并为各个task分配资源。mesos-slave将自己的资源量发送给mesos-master,由mesos-master中的Allocator模块决定将资源分配给哪个framework。master存在单点故障问题,为此,mesos采用了zookeeper解决该问题。
-
Framework是指外部的计算框架,如Hadoop,Mesos等,这些计算框架可通过注册的方式接入mesos,以便mesos进行统一管理和资源分配。Mesos要求可接入的框架必须有一个调度器模块,该调度器负责框架内部的任务调度。
-
Executor主要用于启动框架内部的task。由于不同的框架,启动task的接口或者方式不同,当一个新的框架要接入mesos时,需要编写一个executor,告诉mesos如何启动该框架中的task。
- mesoscloud/zookeeper
docker run -d \
-e MYID=1 \
-p 2181:2181 \
-p 2888:2888 \
-p 3888:3888 \
-e SERVERS=0.0.0.0 \
--name=zookeeper_t \
--net=host \
--restart=always \
mesoscloud/zookeeper
- mesoscloud/mesos-master
docker run -d \
--net=host \
-e MESOS_HOSTNAME=${HOST_IP} \
-e MESOS_IP=${HOST_IP} \
-e MESOS_QUORUM=1 \
-e MESOS_ZK=zk://${HOST_IP}:2181/mesos \
--name mesos-master \
--restart always \
mesoscloud/mesos-master
- mesoscloud/marathon
docker run -d \
--net host \
-e MARATHON_HOSTNAME=${HOST_IP} \
-e MARATHON_HTTPS_ADDRESS=${HOST_IP} \
-e MARATHON_HTTP_ADDRESS=${HOST_IP} \
-e MARATHON_MASTER=zk://${HOST_IP}:2181/mesos \
-e MARATHON_ZK=zk://${HOST_IP}:2181/marathon \
--name marathon \
--restart always \
mesoscloud/marathon
- mesoscloud/mesos-slave
docker run -d \
--net host \
-e MESOS_HOSTNAME=${HOST_IP} \
-e MESOS_IP=${HOST_IP} \
-e MESOS_MASTER=zk://${HOST_IP}:2181/mesos \
-v /sys/fs/cgroup:/sys/fs/cgroup \
-v /var/run/docker.sock:/var/run/docker.sock \
--name mesos-slave-2 \
--restart always \
--privileged \
mesoscloud/mesos-slave
- mesoscloud/chronos
docker run -d \
-e CHRONOS_HTTP_PORT=4400 \
-e CHRONOS_MASTER=zk://${HOST_IP}:2181/mesos \
-e CHRONOS_ZK_HOSTS=${HOST_IP}:2181 \
--name chronos --net host --restart always mesoscloud/chronos
{
"id": "a1",
"cmd": "npl",
"cpus": 0.5,
"mem": 256.0,
"instances": 1,
"container": {
"type": "DOCKER",
"docker": {
"image": "121.14.117.251:5000/npl-keepwork",
"network": "BRIDGE",
"portMappings": [
{ "containerPort": 8080, "hostPort": 0, "servicePort": 9000, "protocol": "tcp" },
{ "containerPort": 161, "hostPort": 0, "protocol": "udp"}
]
}
}
}