ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## Containerizer ### 动机 Containerizer的作用是在容器中运行任务,包含以下几方面: * 将任务与其他运行时任务隔离 * 容器内部任务处在一个运行时资源限制的环境 * 程序控制任务的独立资源 * 在打包的文件系统镜像运行软件,可以运行在不同的环境中 ### Containerizer的类型 mesos与现有的容器技术有很好的兼容性(比如:docker), 并且提供了自己的容器技术.他还支持不同容器技术的组合(比如:docker和mesos) Mwsos 实现了如下的一些containerizer: * [Composing]()(组合) * [Docker]() * [Mesos]() (默认) * External (已废弃) 通过设置agent参数 `--containerizers`,用户可以指定去使用哪种类型的containerizer #### Composing containerizer 这个特性允许多种容器技术混合使用.当你使用agent参数--containerizers 配置逗号分隔的多个独立容器名称的时候,该特性被激活(如:--containerizers=mesos,docker).逗号分隔的列表的顺序很重要,因为第一个containerizer,如果支持某个任务运行的容器配置,将被用于启动该任务. 用例: * 对于不同类型的资源隔离的测试任务。因为mesos 的 containerizers有多种资源隔离的能力,一个应用框架可以使用组合containerizer进行测试,一个任务用mesos containerizer的控制环境,与此同时只需要修改容器参数就可以使用docker容器测试另一个任务. ### Docker containerizer Docker containerizer将任务运行在docker 容器.设置agent参数`--containerizers=docker`就可以使用这种containerizer. 用例: * 如果任务的运行需要一些docker 中的工具包 * 如果 Mesos agent运行于docker 容器中 更多细节, 请查看 [Docker Containerizer](). ### Mesos containerizer 这种containerizer将任务运行在Mesos提供的一组插件式的隔离环境中.这是一个Mesos原生的containerizer解决方案,设置agent参数`--containerizers=mesos`就可以使用它. 用例: * 不需要以来其他的容器技术,Mesos自己来控制任务的运行时环境 * 需要细粒度的操作系统控制(如:linux提供的cgroups/namespaces) * 需要Mesos最新的容器技术特性 * 需要额外的资源控制,比如:其他的容器技术不能提供的磁盘使用量限制 * 需要添加自定义任务的隔离性 更多细节, 请查看 [Mesos Containerizer](). ### References * [Containerizer Internals]() for implementation details of containerizers.