【译】LXC and LXD: Explaining Linux Containers

LXC和LXD是两个重要的缩略词,可以知道你是否装入容器。 不幸的是,它们也是难以直接相互保持的缩略语。 他们听起来很像。 它们指的是类似的平台,这些平台大部分是由同一家公司创建的。 而且他们在技术层面上彼此深深地交织在一起。

如果这听起来令人困惑,那是因为它至少在开始时是这样。 幸运的是,通过一些解释,很容易理解LXC,LXD以及它们对于想要使用容器的管理员和开发人员的意义。

这篇文章解释了LXC和LXD是什么,它们之间有什么不同,以及为什么开发人员或管理员想要使用它们 - 或者,为什么他们可能更喜欢坚持使用Docker或CoreO。

LXC

要了解LXD,您首先必须了解LXC。

LXC是“Linux容器”的简称,是Linux内核中操作系统级软件虚拟化的解决方案。 与传统的虚拟机管理程序(想想VMware,KVM和Hyper-V)不同,LXC允许您在虚拟环境中运行单个应用程序,但如果您愿意,也可以在LXC容器内虚拟化整个操作系统。

LXC的主要优势包括使用来自主机操作系统的用户空间工具轻松控制虚拟环境,比传统虚拟机管理程序需要更少的开销,并通过将其分发到容器内来提高单个应用程序的可移植性。

如果您认为LXC听起来很像Docker或CoreOS容器,那是因为LXC曾经是使Docker和CoreOS打勾的底层技术。 然而,最近,Docker走向了自己的方向,不再依赖于LXC。 CoreOS现在也使用Rocket(也称为rkt,对于那些真正不喜欢打字的人)做自己的事情。 尽管如此,LXC几年前还是集装箱革命的起源,LXC原则 - 如果不是LXC代码 - 仍然是集装箱发展方式的核心。

LXD

定义LXD的最简单方法是说它是LXC的扩展。 LXD也恰好是LXC的主要声誉,因为LXC已经不再对Docker和CoreOS很重要。

定义LXD的更技术方法是将其描述为连接到libxlc(LXC软件库)的REST API。 LXD是用Go编写的,它创建了一个系统守护程序,应用程序可以使用Unix套接字在本地访问,也可以通过HTTPS在网络上访问。

LXD的主要卖点包括:

  • 主机可以仅使用单个系统守护程序运行许多LXC容器,这简化了管理并减少了开销。 使用纯粹的LXC,您需要为每个容器分别进行处理。
  • LXD守护程序可以利用主机级安全功能来使容器更安全。 在简单的LXC上,容器安全性更成问题。
  • 由于LXD守护程序处理网络和数据存储,并且用户可以从LXD CLI界面控制这些内容,因此简化了与容器共享这些资源的过程。
  • LXD提供LXC无法提供的高级功能,包括实时容器迁移和快照正在运行的容器的功能。

Canonical ,为Ubuntu GNU / Linux操作系统提供资金的公司(并非巧合,也是LXC的主要支持者),于2014年底推出了LXD。如果我在几个月前写这篇文章,我会说LXD还没有为实际使用做好准备。

但最近发生了很多变化,LXD 2.0是第一个生产版本, 截止到2016年4月 。 现在,LXD终于可以用于生产级别的使用。

(你问LXD 1.0怎么样?没有LXD 1.0。开发人员直接跳到LXD 2.0,因为它是与LXC 2.0并行发布的。)

LXC和LXD

如果您是应用程序开发人员或数据中心管理员,您可能想知道上述所有方法对您的影响,以及您应该选择哪种容器解决方案。

答案很复杂。 首先,要明白你不能在LXC和LXD之间做出选择,因为它们不是截然不同的东西。 它们不是彼此的叉子或克隆。 LXD依赖于LXC。 它们都是由同一代程序员共同开发的。 因此,如果你使用LXD,你也会使用LXC,而且你总会这样做。

是的,您可以在没有LXD的情况下使用LXC。 但你可能不想这样做。 就其本身而言,LXC将仅为您提供基本的功能子集。 对于生产环境,您将需要使用LXD。

LXC + LXD与Docker / CoreOS

你可能也想知道LXC + LXD组合是否比Docker或CoreOS更好。 答案取决于您的需求。

首先,请注意Canonical不打算将LXC + LXD替换为Docker。 相反, 正如LXD开发人员之一的StéphaneGraber所写 ,LXD专为托管“通常会长时间运行并基于清晰的分发图像”的虚拟环境而设计,而“Docker专注于短暂的,无状态的,最小的容器,赢得了'通常会升级或重新配置,而只是完全替换。“

这意味着在选择LXD或Docker(或CoreOS,在这方面类似于Docker)之前,您应该考虑必须管理的部署类型。 您是否会根据通用应用程序图像快速启动大量容器? 如果是这样,请使用Docker或CoreOS。 或者,如果您打算虚拟化整个操作系统,或者长时间运行持久性虚拟应用程序,LXD可能会成为更好的解决方案。

要考虑的第二个因素是您的主机环境。 LXD只支持Linux,至少就目前而言,它只是用于Ubuntu。 因此,如果您的服务器运行另一种Linux或Windows,LXD将无法正常运行。 相比之下,Docker和CoreOS几乎可以在任何基于Linux的操作系统上轻松移植,现在您甚至可以在Windows和OS X上本地运行Docker。

当然,您的里程可能会有所不同。 但这些是基础知识。 现在,快乐集装箱!

编者注: LXC和LXD:解释Linux容器Sumo Logic DevOps社区发布 。 如果您想了解更多信息或做出贡献,请访问devops.sumologic.com 。 此外,请务必查看Sumo Logic开源页面上的免费工具和代码,以便您监控应用程序从代码到生产的故障排除。

https://www.sumologic.com/blog/code/lxc-lxd-explaining-linux-containers/

猜你喜欢

转载自blog.csdn.net/omnispace/article/details/83214368
今日推荐