查看Docker替代群集技术的替代方案
Docker是软件的友好,但自由软件世界不容忍单体文化。
每当一些软件流行时,替代方案都显示出来,每个软件都会使其自己的设计变化以填补不同的利基。
容器也不例外。
首先有LXC和OpenVz,然后ovcker出示,然后核心引入火箭或者rkt,然后在Lxd面上推出的夹突。
帽子也没有扭曲拇指,他们自己做了自己的叉子叫做ocid。
而这些只是集装式格式,我们也有Docker聚类和商政协调技术,如Kubernetes。
来自帽子的Kubernetes分布称为OpenShift,还有其他竞争技术,而不是基于Kubernetes,例如Marathon,用于管理Apache Mesos和DC/OS容器。
Kubernetes的另一个竞争对手是Docker项目Docker Swarm。
在本文中,我们将从实际教程中休息审查所有这些替代方案,以查看他们提供的产品。
在下一个文章中,我们将展示如何安装和使用其中的一些。
LXC和LXD.
让我们从Canonical的项目开始用于容器虚拟机管理程序。
LXC和LXD在技术上是单独的项目,但LXD在LXC上构建,它或者多或者少是LXC的前端。
LXC几乎是十年的旧项目,该项目始于CGroups前端,用于在加入监狱比Chroot更好地进行监狱,并进化到全机容器中。
所有其他Docker格式(OpenVZ除外)均围绕封装一个应用程序的单一过程的概念,而LXC和LXD为我们提供整个机器容器,我们可以其中运行像KVM这样的虚拟机上的多个服务。
创建LXD的原因是要更改LXC的接口,而不会破坏向后兼容性的内容。
因此,将产生使用LXC核心库的新项目并实现一个清洁接口和安全模型。
例如,LXD按设计运行为非特权用户,与LXC仅支持以前仅作为root服务,并且后者添加了对非特权Docker的部分支持。
LXD和LXC的目标是使容器尽可能靠近真实的Linux安装,例如它在VM中,除了VM之外,它们使用Host Kernel。
支持的功能包括实时迁移,快照,设备Pastrough等。
有关LXC和LXD的更多信息,请使用HTTPS://LinuxContainers。
组织/
openvz.
OpenVz甚至比LXC更旧,其设计非常相似。
它在Solaris容器之后建模,它使用修补的Linux内核。
它背后的Virtuozzo拥有Vzlinux操作系统,与OpenVz捆绑在一起。
由于Opnevz 7. o,它使用KVM作为带有主机内核的虚拟机管理程序,这意味着它基本上是一个只能运行Linux的VM。
功能集非常类似于LXC和LXD,除了Virtuozzo提供Virtuozzo 7,基于OpenVz技术的专有产品。
Docker.
这对全机容器进行了影响,现在我们调查此空间的应用程序容器解决方案和领导者是Docker。
Docker由Docker Inc生产,并在申请容器时建议自己作为事实上的标准。
这意味着在Docker中,我们通常应该在每个容器中运行一个进程。
有关更多进程,我们只需运行更多的容器,并且在这些情况下,建议kubernetes等编排和聚类技术。
Docker在主机上运行作为Docker守护程序,并使用Chgroups命名空间隔离启动容器,而不是启用LXC,但它不再基于LXC核心库,就像它在早期就像它一样。
要开始ovcker,我们可以阅读官方进行文档。
Docker Inc非常受欢迎,Dockercon拥有超过5K与会者。
oc
OCID是一个守护进程,以创建容器周围的行业标准。
Kubernetes可以用于运行存储在Docker注册表上的容器图像。
根据Red Hat,它是一个稳定的企业就绪版本的Docker,因为Docker太快了,而且它经常破坏向后兼容性。
Ocid代表开放Docker计划守护程序,它是作为Kubernetes项目的一部分开发的。
目前它在Kubernetes孵化器中。
该项目定期将代码送回Docker开发,并旨在与Docker兼容性明智突破。
火箭
火箭或者rkt是做办体的核心方式。
这是Docker的竞争对手,它与Docker不同的Damon一直运行。
相反,它具有单个RKT可执行文件,可以调用以创建容器。
RKT中的容器具有App Container格式,但RKT也可以执行Docker制作的容器。
像Docker一样,它旨在为在每个容器中运行Singe Foregrount进程。
Kubernetes.
现在我们钉住了最受欢迎的容器技术,需要了解如何在比例下使用它们。
我们需要编排和聚类技术。
这里的领导者是kubernetes。
甚至在Docker之前,甚至在LXC之前,Google也会在其数据中心内部的Linux内核版本运行自己的CGroup容器版本。
由于它们以巨大的规模运行,因此他们有编排和聚类技术与它一起使用。
随着Docker的兴起,他们决定启动名为Kubernetes的新项目,这将以Docker或者RKT格式使用标准容器。
他们使用去编程语言,并决定用新的私有内部技术,新创立的Kubernetes项目,该项目很快成为顶级开源项目之一。
Kubernetes以这样的方式构建,可以使用Docker,RKT或者Ocid容器格式,同时帮助开发人员和管理员快速缩放运行数千个容器的容错群集在许多节点上运行数千个容器。
Kubernetes通过重新启动响应性进程来支持群集的自我修复,具有复制控制器,并在飞行中支持负载平衡和添加节点。
Docker Swarm.
Docker Swarm是Docker Inc的Docker聚类解决方案。
它可以使多个Docker主机充当运行Docker容器的大型主机。
它使用与Docker相同的API,这意味着使用Docker API的任何应用程序都可以使用Docker Swarm,以便缩放。
不幸的是,Docker Swarm并不像Kubernetes那样流行,它没有这样的大社区,这是这种聚类技术的主要缺点。
openshift.
OpenShift是红帽的Kubernetes分布。
OpenShift最初基于Makara技术,红帽与同名创建。
但后者这是完全重写的,并与Kubernetes一起工作。
OpenShift的前端是用Ruby写的,而Kubernetes部分是of to go。
Red Hat是Kubernetes项目的主要贡献者之一,仅次于谷歌本身。
CloudFoundry.
CloudFoundry正在竞争PaaS提供给OpenShift。
它是由Pivotal,VMware分拆开始,现在是戴尔的一部分与VMware和EMC一起。
它是用Ruby写的,然后与OpenShift一样。
它现在也来自戴尔和IBM员工的大多数贡献,并且只有在戴尔的子顶部的CloudFoundry上的商业提供。
在DC/OS中的Apache Mesos和Marathon
由少数大型组织使用的大规模(例如G. Twitter)。
这是一个非常复杂的项目或者一组项目,使较低级别聚类。
Kubernetes也部署在Mesos和DC/OS之上,因此它不是Kubernetes的竞争对手,它也是一个免费组件。
Mesos是用C++编写的,它是由Google秘密欧米茄调度程序建模的。
DC/OS包括MESOS,Kubernetes,马拉松和各种其他组件。
马拉松是PaaS提供,它部署在DC/OS之上。
它是用scala写的。