随着容器云和Docker技术的发展,容器基础镜像OS和运行容器的宿主机OS的选择都成了一个问题。有很多Linux发行商和云运营商也发布了专门的容器发行版,与传统发行版操作系统相比,这些Linux可能更安全,更简练,发行版有一我们列出业界流行的几种发行版,希望能帮助大家甄选最适合自己的发行版。
概述
容器专用操作系统是指专为运行容器而设计的Linux发行版,这些发行版可以提供常规发行外一些额外的优势:
- 简练:容器专用操作系统应该很小,仅安装必须的组件。最大可能减少附带的工具和应用。
- 原子更新。
- 默认情况下,就可构建大规模群集
- 可以自动运行Docker守护程序。
- 根文件系统只读。
- 原子更新可回滚(双分区更新方案)。
- 增强的稳定性和安全性。
根据这些特征我们来对比下常见的容器Linux发行版:CoreOS,Ubuntu Snappy,Atomic,RancherOS还有Photon。
这些发行版默认都是云原生的,它提供了一个多发行包,可以很方便地用于云实例的早期初始化。
CoreOS
CoreOS是基于Linux内核的云原生发行版,专注于安全、可靠、集群化,可自动化,轻松部署。作为一个容器操作系统,CoreOS 提供运行现代基础架构堆栈所需的功能,包括容器运行所需要的基础功能环境以及一系列内建的服务发现和共享配置的工具。CoreOS的策略和体系结构允许用户以高弹性运行大规模服务。
CoreOS附带有两个容器运行时(例如Docker和Rocket),它们可以在每个节点上自动配置。另外,CoreOS还提供自动更新,可以默认获取所有更新。
CoreOS使用自己的内置ignition作为启动点。Ignition是在首次启动时运行的配置工具,可让用户以不变的方式配置节点。在CoreOS上运行应用程序的首选方法是在容器中运行它们。
etcd也是CoreOS的优势之一。etcd是一个分布式键值缓存服务器,它被Kubernetes,Cloud Foundry等许多项目使用。可以使用etcd进行简单的服务发现等等。
大型云提供商基本都上都提供了对CoreOS支持。
Ubuntu Core
Ubuntu Core是适用于IoT设备和大型容器部署的Ubuntu的微型事务版本。它运行着一种新型的超级安全,可远程升级的Linux应用程序软件包,称为snaps,被芯片组厂商,设备制造商和系统集成商等领先的物联网厂商支持和信任。
Ubuntu Core内置了Canonical的AppArmor内核安全系统,提供人性化的安全性。Ubuntu Core可让应用程序彼此完全隔离以保证安全。
默认情况下, Ubuntu Core并没有内置Docker运行时,但是用户可以轻松地将Docker安装为运行Docker容器的快捷方式。安装非常简单:
- sudo snappy install docker
第一次尝试Ubuntu Core时,需要一个Ubuntu帐户,用于ssh密钥的初始配置。
RancherOS
RancherOS项目目的是构建一个极简的Linux发行版,可以让Docker直接在Linux内核之上运行,并将所有用户空间Linux服务作为Docker容器分发。这样,就无需为RancherOS本身使用单独的软件包分发机制。
总之,RancherOS是由Containers构成的OS,以PID 1运行Docker守护程序, Docker守护程序是内核启动的第一个进程。RancherOS中运行了2个Docker守护进程,一个用于系统(System Docker),一个用于用户(User Docker),系统Docker负责启动所有系统服务,例如udev,DHCP和控制台。因此,RancherOS使用Docker作为初始化系统,并将所有系统服务作为Docker容器进行管理。
在Docker容器中运行所有内容时,总是可以通过RancherOS获得最新的Docker版本。可以通过运行其他系统容器来轻松扩展RancherOS,例如,可以运行自己的控制台容器来访问自己喜欢的控制台。由于系统超级精简,所以安全漏洞更加少并且需要更少的补丁程序,并提供更高的稳定性。
由于所有系统服务都是作为Docker容器交付的,无需任何诸如apt-get或yum的软件包管理工具。由于内核和initrd不是Docker容器,因此RancherOS也使用Docker打包和分发来交付内核和initrd更新。
RancherOS也可以被视为嵌入式系统和IoT设备的解决方案。
VMware Photon
Photon是最小的Linux容器主机的技术预览版本。Photon的设计尺寸很小,可以在VMware平台上快速启动。Photon旨在为虚拟化环境中运行的容器化应用程序进行协作。
结论
如何选择一个合适的基础发行版,具体取决于工作负载和环境。在服务器/云/数据中心领域一直不断有新技术在推出和尝试,运行Docker基础架构有很多不错的选择,当然看着好,不如用的好,真正能在生产环境中使用才是最后决胜者。