基于容器的LinuxLinux哪个发行版版怎么样

摘要:我们可以让容器在不同的操作系统上运行,不同的操作系统都有自己的虚拟化服务,如:Solaris Zones、BSD Jails、Linux Docker(Windows现在也支持Docker了)、Linux OpenVZ等等。那选择哪一个?请看本文带来的分析。


单单使用容器是不够的,提供商们认为你需要一个容器专用的Linux发行版本。

我们可以让容器在不同的操作系统上运行,不同的操作系统都有自己的虚拟化服务,如:Solaris Zones、BSD Jails、Linux Docker(Windows现在也支持Docker了)、Linux OpenVZ等等。特别是在Docker和容器技术突然流行开来,操作系统公司正在采取不同的策略。他们认为,大部分容器,应该用瘦操作系统制作。

为什么?(当然,除了给他们一个新的收入来源)

Alex Polvi,CoreOS的CEO,第一个发行了针对轻量级、容器友好的Linux系统的Linux公司,解释道:”我们认为我们可以进一步让容器达到操作系统无关“

如何办到?Polvi意识到容器可以将应用程序与操作系统隔离,使宿主操作系统切换不影响应用程序正常运行。为了让容器更有效的运行,你会希望宿主操作系统只提供满足容器运行的最少服务。

然后,从谷歌是如何更新Chrome OS中可以借鉴(请注意,CoreOS一开始就是fork自Chrome OS的),Polvi认为容器服务器也可以自动更新,相应的,也会极大提升操作系统打补丁的速度。

所以,Polvi继续说道,”如果所有这些都能自动更新,你再也不用担心?CoreOS就像一个有组织的团体,帮你维护操作系统,你只需要关注应用程序的正常运行。

所以,CoreOS所做的,或者其他操作系统现在或者将来要做的,就是维护一个非常小的操作系统内核,只提供最基础的服务。在这种模式下,无需操作系统更新升级。取而代之的是,等待服务器关闭,由于在云端,总会有其他的服务器接管容器,等接管完成后,可以将旧的OS替换成新的版本。

这种方式可以快速提供最新的更新,用户感知不到任何停机时间的。有了这个机制,你也可以提供一个跨整个数据中心或云的一致的操作系统,不存在集群中有系统没打补丁,或者补丁不一致.

这种方法的另一个优点是,如果新版本出现了什么问题,你可以随时回滚到一个先前的、安全的版本。正如Red Hat公司产品技术总裁Paul Cormier在最近的博客文章中说,"Linux的容器,扩充和依赖取决于操作系统的一致性。"

容器友好的操作系统有一个共同点,对于Docker来说:

  • 通过事务升级/回滚语义来保证稳定性;
  • 传统的包管理器不存在,且可以通过新的打包系统(Snappy)或自定义镜像构建(Atomic)所取代;
  • 安全性是通过各种隔离机制来保证;
  • Systemd提供了系统启动和管理。

那么,他们彼此又是如何的不同?这仍然需要一些时日去发展。即使是其中最古老的操作系统CoreOS,也还没有达到它的第二个生日呢。以下是迄今为止我们所知道。

Polvi在接受采访时说, "CoreOS从一开始就设计为“可自动更新的服务器,这和人们之前所认识的服务器很不同。如果一切正常,我们认为我们可能解锁了很多价值,它拥有安全性、可靠性、性能,所有最新版本软件所具有的一切。“

CoreOS设法使用FastPatch做到这一点。这样,更新的时候是直接更新完整的系统,而不是一个又一个的升级补丁。

至于容器,CoreOS开始作为Docker的最好的朋友。但随后,Polvi说,“Docker开始成为一个平台,在其本身,因此它会与现有的平台竞争。这很好。我明白,如果他们想建立一个平台,作为一个公司,这有很大的商业意义。问题是,对于构建平台,我们仍然需要的是一个简单的组件。“

在2014年十二月Polvi解释说:“我们以为Docker会成为一个简单的单元,我们都同意。不幸的是,一个简单的可重复使用的组件变得越来越复杂。现在Docker正在开发启动云服务的工具,用于云计算的服务器,系统集群和很多其他的功能:构建镜像、运行镜像、上传、下载,并最终甚至覆盖网络,所有编译成一个整体的二进制程序作为root权限运行在服务器上...这不是我们曾设想的像使用组合积木一样简单。“因此,CoreOS开发了自己的容器Rocket。

CoreOS仍然还是支持Docker的,但是很快的Rocket将成为其主要的容器。

红帽还看到了一支精干的技术优势,是指Linux操作系统。他们开始做这个工作,那就是 。这个开源的操作系统,目前可以选择是基于Fedora、CentOS,或者是RHEL。

在此基础上,红帽开发了RHELAH。这个操作系统是基于在RHEL7。它具有像镜像一样原子更新和回滚的功能。红帽为Docker贡献了自己的容器技术。

据红帽所公布的资料,RHELAH拥有超过其竞争对手的许多优点。这包括能够“直接运行在硬件以及公共或私人虚拟化基础架构。”此外,红帽添加了对SELinux的支持,提高了系统安全性。

Canonical,创建Ubuntu的公司,正在尝试与CoreOS和Red Hat不同的方法。当然它也有写部分与其他的是相似的。 Canonical公司声称:“Ubuntu Core是最小的、负载最低的Ubuntu,完美适合超高密度容器云计算,Docker的应用程序部署或平台即服务(PaaS)的云环境。Ubuntu Core是专们为效率所开发,具有最小的运行时占用空间,拥有同行业中最好的安全配置文件:这是一个引擎、底盘和车轮,没有奢侈品,正是您所需要的大规模并行系统。“

虽然你可以通过镜像更新Ubuntu core和“Snappy”的应用程序,Canonical的Snappy包管理系统使用元数据文件和构建工具来创建一个新的Snappy的应用程序。”据Ubuntu的创始人Mark Shuttleworth所说,“这个短小精悍的系统使Ubuntu的各部分保持独立,只读文件,并且每个应用程序都是如此。这样,开发人员可以确信所有他们应用程序所需要的,将完全按照他们所预想一样正常运行,我们可以采取措施来保持各种应用程序彼此隔离,并确保更新总是完美的。

此外,Ubuntu使用AppArmor的内核系统来保证安全性。理想情况下,在snappy版本的Ubuntu中,应用程序是完全彼此隔离的。

还记得VMware的联合创始人Mendel Rosenblum曾表示,操作系统早在2007年已经过时?我也这么认为。然而事情发生了变化。Rosenblum说对了一半,虚拟化技术正在改变世界 - 没有它我们不会有云服务,但操作系统仍和以前一样重要。所以,也许这并不奇怪,面对容器浪潮,VMware已经采用了这两种容器技术,并发布了自己的第一个Alpha版本Linux操作系统Photon。

当然VMware并没有放弃它的虚拟机(VM)的方式——Photon目前只能运行在VMware vSphere和VMware vCloud Air。总之,VMware的认为,应该在虚拟机上运行容器,而不是在原生操作系统上运行容器,这是未来的发展方向。那么,考虑到其商业模式,当然VMware的一样。

VMware还发布了Lightwave,一种容器的身份和访问管理方案。

那么,哪一个会胜出?你会选择哪一種容器?

CoreOS显然已比别人有更多的经验。他们也是迄今为止体积最小、最年轻的公司。红帽带来了可观的资源来提高我们的服务,但Canonical公司并没有懈怠。至于VMware的,他们才刚开始加入容器技术,但他们非常了解虚拟化技术的前世今生。

这些都是在一个新的领域的新项目。我会去尝试所有这些这项,看我自己的IT需求,然后决定其中哪些是值得一试的程序。那是什么?你想要立即在你们公司内部应用?我不这么认为!这些技术都不太成熟。

英文原文: (译者/施聪羽 审校/朱正贵 责编/魏伟)

关于译者: ,浩渺科技服务端研发工程师,关注大数据处理。


【预告】 将于7月26-27日在北京友谊宾馆召开。机器学习与模式识别、大数据的机遇与挑战、人工智能与认知科学、智能机器人四个主题专家云集。人工智能产品库将同步上线,预约咨询:QQ:。欢迎关注。


更多Container技术资讯,请扫描下方二维码关注我们

或者扫描下方二维码进入CSDN Container用户群讨论

本文为CSDN编译整理,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)

}

你可能会感到不解,这里有这么多成熟的 Linux 发行版本,为什么要选择用 CoreOS ?借用 Linux 主干分支的维护者,也是 CoreOS 顾问的 Greg Kroah-Hartman 先生的一句话:

CoreOS 可以控制发行版的升级(基于 ChromeOS 代码),并结合了 Docker 和潜在的核对/修复功能,这意味着不用停止或者重启你的相关进程,就可以在线升级。测试版本已经支持此功能,这是史无前例的。

当 Greg Kroah-Hartman 做出这段评价时,CoreOS 还处于 α 测试阶段,当时也许就是在硅谷的一个车库当中,开发团队正在紧锣密鼓地开发此产品,但 CoreOS 不像最开始的苹果或者惠普,其在过去的四年当中一直稳步发展。

当我参加在旧金山举办的 2017 CoreOS 大会时,CoreOS 已经支持谷歌云、IBM、AWS 和微软的相关服务。现在有超过 1000 位开发人员参与到这个项目中,并为能够成为这个伟大产品的一员而感到高兴。

究其原因,CoreOS 从开始就是为容器而设计的轻量级 Linux 发行版,其起初是作为一个 Docker 平台,随着时间的推移, CoreOS 在容器方面走出了自己的道路,除了 Docker 之外,它也支持它自己的容器 rkt (读作 rocket )。

不像大多数其他的 Linux 发行版,CoreOS 没有包管理器,取而代之的是通过 Google ChromeOS 的页面自动进行软件升级,这样能提高在集群上运行的机器/容器的安全性和可靠性。不用通过系统管理员的干涉,操作系统升级组件和安全补丁可以定期推送到 CoreOS 容器。

你可以通过 CoreUpdate 和它的 Web 界面上来修改推送周期,这样你就可以控制你的机器何时更新,以及更新以多快的速度滚动分发到你的集群上。

CoreOS 通过一种叫做 etcd 的分布式配置服务来进行升级,etcd 是一种基于 YAML 的开源的分布式哈希存储系统,它可以为 Linux 集群容器提供配置共享和服务发现等功能。

此服务运行在集群上的每一台服务器上,当其中一台服务器需要下线升级时,它会发起领袖选举,以便服务器更新时整个Linux 系统和容器化的应用可以继续运行。

对于集群管理,CoreOS 之前采用的是 fleet 方法,这将 etcd 和 systemd 结合到分布式初始化系统中。虽然 fleet 仍然在使用,但 CoreOS 已经将 etcd 加入到 Kubernetes 容器编排系统构成了一个更加强有力的管理工具。

CoreOS 也可以让你定制其它的操作系统相关规范,比如用 cloud-config 的方式管理网络配置、用户账号和 systemd 单元等。

综上所述,CoreOS 可以不断地自行升级到最新版本,能让你获得从单独系统到集群等各种场景的完全控制。如 CoreOS 宣称的,你再也不用为了改变一个单独的配置而在每一台机器上运行 Chef 了。

假如说你想进一步的扩展你的 DevOps 控制,CoreOS 能够轻松地帮助你部署 Kubernetes。

CoreOS 从一开始就是构建来易于部署、管理和运行容器的。当然,其它的 Linux 发行版,比如 RedHat 家族的原子项目也可以达到类似的效果,但是对于那些发行版而言是以附加组件的方式出现的,而 CoreOS 从它诞生的第一天就是为容器而设计的。

当前容器和 Docker 已经逐渐成为商业系统的主流,如果在可预见的未来中你要在工作中使用容器,你应该考虑下 CoreOS,不管你的系统是在裸机硬件上、虚拟机还是云上。

如果有任何关于 CoreOS 的观点或者问题,还请在评论栏中留言。如果你觉得这篇博客还算有用的话,还请分享一下~


Linode 公司,我们对他做出的贡献致以最真诚的感谢。如果想知道他更多的信息,可以关注他的 Twitter @sjvn

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好,开源站点:/


Linux系统技术交流QQ群2632018验证问题答案:刘遄

你可能会感到不解,这里有这么多成熟的 Linux 发行版本,为什么要选择用 CoreOS ?借用 Linux 主干分支的维护者,也是 CoreOS 顾问的 Greg Kroah-Hartman 先生的一句话:

CoreOS 可以控制发行版的升级(基于 ChromeOS 代码),并结合了 Docker 和潜在的核对/修复功能,这意味着不用停止或者重启你的相关进程,就可以在线升级。测试版本已经支持此功能,这是史无前例的。

当 Greg Kroah-Hartman 做出这段评价时,CoreOS 还处于 α 测试阶段,当时也许就是在硅谷的一个车库当中,开发团队正在紧锣密鼓地开发此产品,但 CoreOS 不像最开始的苹果或者惠普,其在过去的四年当中一直稳步发展。

当我参加在旧金山举办的 2017 CoreOS 大会时,CoreOS 已经支持谷歌云、IBM、AWS 和微软的相关服务。现在有超过 1000 位开发人员参与到这个项目中,并为能够成为这个伟大产品的一员而感到高兴。

究其原因,CoreOS 从开始就是为容器而设计的轻量级 Linux 发行版,其起初是作为一个 Docker 平台,随着时间的推移, CoreOS 在容器方面走出了自己的道路,除了 Docker 之外,它也支持它自己的容器 rkt (读作 rocket )。

不像大多数其他的 Linux 发行版,CoreOS 没有包管理器,取而代之的是通过 Google ChromeOS 的页面自动进行软件升级,这样能提高在集群上运行的机器/容器的安全性和可靠性。不用通过系统管理员的干涉,操作系统升级组件和安全补丁可以定期推送到 CoreOS 容器。

你可以通过 CoreUpdate 和它的 Web 界面上来修改推送周期,这样你就可以控制你的机器何时更新,以及更新以多快的速度滚动分发到你的集群上。

CoreOS 通过一种叫做 etcd 的分布式配置服务来进行升级,etcd 是一种基于 YAML 的开源的分布式哈希存储系统,它可以为 Linux 集群容器提供配置共享和服务发现等功能。

此服务运行在集群上的每一台服务器上,当其中一台服务器需要下线升级时,它会发起领袖选举,以便服务器更新时整个Linux 系统和容器化的应用可以继续运行。

对于集群管理,CoreOS 之前采用的是 fleet 方法,这将 etcd 和 systemd 结合到分布式初始化系统中。虽然 fleet 仍然在使用,但 CoreOS 已经将 etcd 加入到 Kubernetes 容器编排系统构成了一个更加强有力的管理工具。

CoreOS 也可以让你定制其它的操作系统相关规范,比如用 cloud-config 的方式管理网络配置、用户账号和 systemd 单元等。

综上所述,CoreOS 可以不断地自行升级到最新版本,能让你获得从单独系统到集群等各种场景的完全控制。如 CoreOS 宣称的,你再也不用为了改变一个单独的配置而在每一台机器上运行 Chef 了。

假如说你想进一步的扩展你的 DevOps 控制,CoreOS 能够轻松地帮助你部署 Kubernetes。

CoreOS 从一开始就是构建来易于部署、管理和运行容器的。当然,其它的 Linux 发行版,比如 RedHat 家族的原子项目也可以达到类似的效果,但是对于那些发行版而言是以附加组件的方式出现的,而 CoreOS 从它诞生的第一天就是为容器而设计的。

当前容器和 Docker 已经逐渐成为商业系统的主流,如果在可预见的未来中你要在工作中使用容器,你应该考虑下 CoreOS,不管你的系统是在裸机硬件上、虚拟机还是云上。

如果有任何关于 CoreOS 的观点或者问题,还请在评论栏中留言。如果你觉得这篇博客还算有用的话,还请分享一下~


Linode 公司,我们对他做出的贡献致以最真诚的感谢。如果想知道他更多的信息,可以关注他的 Twitter @sjvn

}

我要回帖

更多关于 linux发行版 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信