DCOS的容器功能

以下内容已屏蔽图片优化访问速度
Mesos运行的任务会通过容器进行隔离,提供的容器有两种,一种是原生的Mesos容器,一种是Docker容器。在原来的Mesos版本中,Mesos容器主要运行普通的Mesos的任务,例如命令行,大数据等,而运行Docker的镜像还是需要通过Docker容器。
在Mesos 1.0之后引入了Universal Container Runtime,也即可以使用mesos-containerizer来运行Docker的镜像了。
"container":{
"type":"MESOS",
"docker":{
"network":"BRIDGE",
"image":"nginx"
}
}
Mesos容器的运行过程:
1. 如果配置文件里面有对于镜像的配置,需要调用Provisioner来创建根文件系统
Future provisioning = provisioner->provision(containerId, containerImage.get());
在最新的Mesos里面,多了Provisioner这一层,通过Docker的镜像,来使用不同的存储方式(aufs, overlay等)作为backends来生成根文件系统,从而创建Mesos容器。
2. 准备一些executor的运行的环境,Mesos容器运行的一些参数,整个参数比较复杂。
/bin/sh /root/mesos/build/src/mesos-containerizer launch --command={"shell":true,"value":"\/root\/mesos\/build\/src\/examples\/java\/test-executor"} --commands={"commands":[]} --directory=/tmp/mesos/slaves/20150615-125933-16777343-5050-28128-S0/frameworks/20150615-130844-16777343-5050-14271-0000/executors/default/runs/1c8429b8-bd1b-4738-af2c-5aa324f0b22f --help=false --pipe_read=8 --pipe_write=9 --user=root
3. 使用mesos-containerizer启动容器
4. 最后调用isolate进行资源隔离的配置
默认的mesos-containerizer的隔离只包括cpu和memory,然而在最新的Open DC/OS版本里面,在配置了更多的隔离器Isolator.
MESOS_ISOLATION=cgroups/cpu,cgroups/mem,disk/du,network/cni,filesystem/linux,docker/runtime,docker/volume。
Isolator定义了很多函数,其中比较重要的是isolate函数,是容器启动的时候对于资源进行限制,例如cgroups/cpu,cgroups/mem这两个isolator,都是写入cgroup文件。
另外一个重要的函数是watch函数,例如对于disk/du这个isolator,对于硬盘使用量,其实没有cgroup可以设置,需要过一段时间du一下,这就需要实现watch函数,过一段时间查看一下硬盘使用量,超过后做一定的操作。
9次降价消费者仍不买账,无印良品还能在中国叫嚣多久? 首播3小时破亿,能把纪录片拍成这样的,也只能是陈晓卿了! 150辆大巴免费坐,却盈利1亿多! 2018数据年报 重磅!任正非内部讲话曝光:刀尖上跳舞,除了世界第一,就是死亡
好看吗?
总执行时间0.014209985733032227,文章查询时间0.001924753189086914,分类查询时间0.011222600936889648,其他脚本9.918212890625e-05,模板渲染0.0009634494781494141