对于任何在过去两年一直追随者容器(container)社区逐渐繁荣的人来说( Solomon Hykes 在 PyCon 大会上做了有名的五分钟报告之后),你会发现越来越多的公司或项目不断涌现,提供许多创新方式来管理你的应用。
有许多项目围绕者管理(management),网络(network), 存储(storage), 日志(logging),监控(monitoring), 及更多 (参考这篇精妙的 ecosystem 之脑图 )。 然而,我认为,***的项目应是为你的或将有的应用环境构建基础架构:容器操作系统(container OSes)。
参加容器会议时,与人交流,总是听到一个问题是,“哪个操作系统最适于运行容器?” 接着就是问, “是 CoreOS? RedHat 怎么样? 我也听到过有个叫 RancherOS 的?”
我喜欢这些争论;这就类似于“哪个 Hypervisor ***?” 当然,答案总是“这得看情况。” 我仍然打算试着就当前(截稿时间为止)***的容器操作系统,解释关键利益点和差别。
CoreOS
这是容器操作系统的代表。 CoreOS 侧重于大规模部署,主要面向企业,良好的社区支持(数百贡献者,500+ IRC 用户, 在#coreos on FreeNode)。它集成了许多由 CoreOS项目组开发的令人感兴趣工具,如etcd, fleet,和flannel。这些工具能助你快速搭建起CoreOS集群。同时,他们也能帮助你更深入的理解服务发现,资源规划和容器网络的背后概念。
谁是最棒的容器操作系统?
2014年12月, the CoreOS项目组发布了另外一个容器运行时引擎类型, rkt。它是回应项目组中提到的Docker将从原始平台移出的声明,他们想观察社区的反应是否相同。CoreOS仍将同事支持Docker和rkt两种 容器,所以,不用担心未来一段时间会出现功能问题。
CoreOS项目组也已经联手Google (Google风险基金是CoreOS投资者之一) ,也建立了Tectonic(构建平台), 很有趣的以简单有效地运行CoreOS+ Kubernetes平台的方式。 Tectonic 是商业Kubernetes平台,如果你运维大规模,需要高于社区的技术支持,它就很重要。
RancherOS
Rancher 将容器操作系统的目标更进一步,在RancherOS中,所有都是一个 Docker容器。它们运行一个系统级别的Docker,PID=1,然后启动一个用户级别的Docker,可以运行所有的用户容器。
听起来很疯狂,但操作系统本来就不该做其他事,只做有必要的事。Rancher剥离所有不必要的服务,使得操作系统很轻量级。ISO安装包只有22MB。
更令人感兴趣的是可以使用Rancher系统,在操作系统的上层添加所有服务。在你考虑在你的容器生产环境增加必要的服务时,你通常需要如下功能,如安全,易联网,服务发现,负载均衡,监控和调度。 Rancher在RancherOS上层添加所有这些,甚至更多。 这是一个综合系统,我强烈推荐你去看看closer look.
Snappy Ubuntu Core
这个有趣的项目是Mark Shuttleworth去年发布的 。他认为当时可用的容器操作系统比较臃肿。
Snappy Ubuntu Core OS 提供了一种新类型的应用管理器 (“snappy”) ,专注于运行apps和容器。某些人或许会坚持认为这不是容器操作系统改做的事情,但是,这或许也是一个好的过度性操作系统。它为那些没有时间学习复杂的 etcd, Consul, fleet, Kubernetes,及所有其他工具的人,提供了研究明白(容器操作系统)各种事情的一个好的学习机会。
系统基础是 “Ubuntu Core.” 在它上层,你的apps活动在只读镜像中 (类似容器), apps支持事务性更新。这是个大进步— 你不再需要整改应用去部署新版本,你仅需要下载你修改的部分就可以了。
Snappy Ubuntu Core OS不算一个纯粹的容器操作系统,不过,它具备一些吸引人的方面。生产环境中运行Ubuntu的人,或者对apps和容器都感兴趣的人,一定会关注它。
RedHat Project Atomic
此发布版基于CentOS, Fedora, and RHEL服务器操作系统的upstream RPMs(Redhat安装包), 支持RedHat称为原子的更新和回滚。这取决于你,亲爱的读者朋友,选择哪个发布版本作为你管理你的服务器的基础。
操作系统内置了许多功能,Docker, flannel (CoreOS项目组出品), Kubernetes, 事务操作系统更新工具rpm-ostree,它总是保存上一个版本(类似CoreOS)和course systemd可用(供回滚)。
Project Atomic 采用SELinux尝试加固容器,管理对容器的读写访问。我认为,使用已有的可信的技术来构建,主意很不错。我猜,很快就会看到RedHat 在该项目上更多动作,不过,目前为止,好消息还很少 。
Mesosphere DCOS
Mesosphere DCOS项目常常会被误认为是Apache Mesos (命名问题?)。不在意这个的话,它提供了一个非常健壮和创造性的方式来考虑如何管理容器。
它利用开源项目如Apache Mesos, Marathon, Zookeeper,和许多其他服务,以清晰的方式将它们集成一道一起,另外还在其上添加了企业特性。DCOS product还是GA版本,提供两个版本:社区版 (免费) ,面向 AWS工作量(级别);企业版,适用其他所有场合。
Mesosphere DCOS最让人感兴趣的是它不只局限与容器管理。它毕竟基于Mesos构建, 应该可以做更多的事。部署Hadoop集群怎么样?或者大规模 Cassandra集群? Mesosphere统统内置(支持),我相信这是它与其他容器操作系统的关键性差别之一,这将使得Mesosphere DCOS很成功。
VMware Photon
4月发布的VMware Photon 是一款新的容器操作性系统,是VMware开源努力的***步。VMware目标明确定位在应用大规模部署 ,正如你在它们的其他项目 Lightwave中看到的,提供身份鉴权服务,包括大规模分布式基础构架、应用和容器的认证和授权。不久会更多,我相信。
总结
明显,上述项目还有很多工作要做,它们每一个都会将自己的东西增加到这个领域(容器操作系统)。我希望本次对比有助于你选一个你感兴趣的项目,探索研究不同的容器操作和管理系统的可能性。祝你好运。