关于mesos的agent是如何定义磁盘资源的


我自己在线下搭建了一套测试的环境,目前唯一的问题就是我不知道agent是如何提供自己的磁盘信息给master的。如下图

这是我agent的配置
root@agent:/mesos/agent/etc/mesos# more mesos-agent-env.sh 
\# This file contains environment variables that are passed to mesos-agent.
\# To get a description of all options run mesos-agent --help; any option
\# supported as a command-line option is also supported as an environment
\# variable.

\# You must at least set MESOS_master.

\# The mesos master URL to contact. Should be host:port for
\# non-ZooKeeper based masters, otherwise a zk:// or file:// URL.

export MESOS_master=zk://172.16.126.131:2181,172.16.126.132:2181,172.16.126.133:2181/mesos
export MESOS_hostname=172.16.126.135
\# Other options you're likely to want to set:
export MESOS_log_dir=/var/log/mesos
export MESOS_work_dir=/var/run/mesos
export MESOS_isolation=cgroups/cpu,cgroups/mem
export MESOS_containerizers=docker,mesos
export MESOS_executor_registration_timeout=3mins
export MESOS_docker_registry=http://172.16.126.129
\#export MESOS_resources='cpus:8;mem:5000;disk:20000'
export MESOS_sandbox_directory=/tmp
\# Other options you're likely to want to set:
\# export MESOS_log_dir=/var/log/mesos
\# export MESOS_work_dir=/var/run/mesos
\# export MESOS_isolation=cgroups


磁盘信息
root@agent:/mesos/agent/sbin# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            986M  4.0K  986M   1% /dev
tmpfs           200M  892K  199M   1% /run
/dev/sda1        40G  3.1G   35G   9% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            997M     0  997M   0% /run/shm
none            100M     0  100M   0% /run/user


mesos 控制台

QQ图片20161205095357.png


可见我的根分区有40G 为什么只分了99MB 出来,这样导致我marathon发布任务以后mesos无法给我分配足够的资源,我的镜像都是700MB左右,这个问题有办法解决吗?是我分区的问题还是?因为我发现分配出来的磁盘好像是第1个分区的10%。
已邀请:

jastme - 锅碗瓢盆

赞同来自:


我修改了mesos-agent-env.sh的配置

export MESOS_resources='[{"name":"disk","type":"SCALAR","scalar":{"value":20480},"disk":{"source":{"type":"PATH","path":{"root":"/"
}]'}}}

2222.png


好像OK了

资源的问题假设解决了,但是我的marathon推送任务还是一种在部署中

3333.png


我的部署json如下
{
"id": "tomcat-v1",
"cmd": null,
"cpus": 1,
"mem": 256,
"disk": 2000,
"instances": 1,
"constraints": [
[
  "hostname",
  "UNIQUE"
]
],
"container": {
"type": "DOCKER",
"volumes": [],
"docker": {
  "image": "172.16.126.129/jenkins",
  "network": "BRIDGE",
  "portMappings": [
    {
      "containerPort": 8080,
      "hostPort": 8080,
      "servicePort": 8080,
      "protocol": "tcp",
      "labels": {}
    }
  ],
  "privileged": false,
  "parameters": [],
  "forcePullImage": false
}
},
"healthChecks": [
{
  "path": "/",
  "protocol": "HTTP",
  "portIndex": 0,
  "gracePeriodSeconds": 30,
  "intervalSeconds": 60,
  "timeoutSeconds": 20,
  "maxConsecutiveFailures": 3,
  "ignoreHttp1xx": false
}
],
"env": {},
"labels": {}
}


日志也没有,不知道是哪里出了问题。。。

黄浩松

赞同来自:


有Mesos Agent的log吗

jastme - 锅碗瓢盆

赞同来自:


没有哦,什么日志都没有,我都用nohup来输出的 nohup里面也没体现。是不是我的虚拟机资源不足引起的?

徐磊 - BlackOps@Qunar

赞同来自:


是否启用了whitelist?

jastme - 锅碗瓢盆

赞同来自:


除了docker,其他的操作都是可以的。比如运行marathon的example下的脚本

Mmmmmmuffin - nju student

赞同来自:


普通任务可用启起来,指定 container 是 docker 就启不起来?

是不是 slave 的 containerizer 没有加 docker?

jastme - 锅碗瓢盆

赞同来自:


你看我配置,是加了的吧。

yaya200514

赞同来自:


hostport 不能设置

嫁人要嫁灰太狼啊

赞同来自:


默认来说,是mesos agent的work_dir设置的路径的磁盘容量。这里你的jenkins不能配置的原因是你的8080端口被占用了(看上去你是全单机版的mesos + marathon)?

jastme - 锅碗瓢盆

赞同来自:


谢谢大家的回复,我已经转战K8S了。。。。。

要回复问题请先登录注册