摘自https://major.io/2014/05/13/coreos-vs-project-atomic-a-review/。
【部署】 coreOS: 通过云上的镜像或者PXE部署。在云上可以使用cloud-config进行配置。 提供了etcd这个key-value系统,提供类似于zookeeper的能力。而且可以用于放置node信息。 提供fleet进行docker容器生命周期的管理。 container的自动迁移和loadbalance。
atomic: atomic开始较晚,目前只提供了qemu/virtualbox的虚拟机镜像试用。 提供了geard工具部署容器。geard允许将多个容器关联起来为一个整体。并且可以跨多个host。
【管理】 coreOS: 提供了A/B系统用于更新。 没有提供python/perl/compiler,但是提供了一个“toolbox”的fedora容器。可以通过systemd-nspawn使用。 没有GUI。 提供了叫fleet的管理系统,进行docker容器的管理。
Atomic: 使用rpm-ostree(不使用yum)管理软件包。rpm-ostree类似于二进制版的git,可以提供软件的多个版本,并进行回退。 提供了叫cockpit的GUI组件用于管理docker容器。 Atomic的基础OS为fedora,并且可以自己构建。从fedora21开始,每个版本都会有一个fedora atomic发布。
【安全】 coreOS: 通过ssh key认证。 没有LDAP, Kerberos之类的认证。 没有Selinux,AppArmor和审计支持。
Atomic: 有selinux和svirt进行保护。 但是Cockpit目前还无法与selinux良好协作。
OStree参考: http://www.slideshare.net/i_yudai/ostree-osgit
etcd: 是一个高可用的键值存储系统,主要用于共享配置和服务发现。etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer, 它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性。Raft是一个来自Stanford的新的一致性算法,适用于分布 式系统的日志复制,Raft通过选举的方式来实现一致性,在Raft中,任何一个节点都可能成为Leader。Google的容器集群管理系统 Kubernetes、开源PaaS平台Cloud Foundry和CoreOS的Fleet都广泛使用了etcd。
geard: 将多个容器关联起来作为一个整体管理。使用json描述。