新兴的Docker容器有可能彻底改变 NFV。 毕竟,与虚拟机相比,它们是轻量级的;他们需要更少的开销和资源;而且,它们可以提供在它们所在的同一操作系统中运行的应用程序隔离。 这意味着,如果 NFV 中的虚拟网络功能 (VNF) 可以完全隔离地在 Docker 容器中运行,则可能不需要虚拟机。 但是,有那么容易吗? 那么虚拟机的未来是什么? 事实上,现在谈论虚拟机的未来还为时过早,因为 docker 容器仍在不断发展(NFV 也是如此)。 然而,如果你坚持到最后,你将能够发现,是什么让 Docker 容器如此特别,以至于现在每个人都在谈论它们。 本指南的主要目的是引导您逐步了解 Docker 容器的架构。在此过程中,您还将了解虚拟机管理程序和虚拟机的基础知识。 假设对虚拟机和虚拟机管理程序的先验知识为零,对这些概念进行了解释。 什么是容器? 从历史上看,容器是作为一种以更灵活和敏捷的方式运行应用程序的方式而出现的。Linux 容器支持直接在 Linux 操作系统中运行轻量级应用程序。无需虚拟机管理程序和虚拟机,应用程序就可以在同一操作系统中独立运行。 什么是 Docker 容器? 自 2006 年以来, Google 一直在其数据中心使用 Linux 容器 。但是,随着 2013 年 docker 容器的出现,Linux 容器变得更加流行。与早期版本的容器相比,这是一种更简单、更标准的容器运行方式。 Docker 容器也在 Linux 中运行。但 Docker 并不是运行容器的唯一方式。LXC 是运行容器的另一种方式。LXC 和 Docker 都源于 Linux。 与 LXC 等竞争容器相比,Docker 容器更受欢迎的原因之一是它能够以简单快速的方式在主机操作系统上加载为“映像”。Docker 以镜像的形式存储在云端,并在需要时由用户以简单的方式调用来执行。 展望未来,我将互换使用“容器”和“Docker 容器”这两个词,因为这些概念适用于两者。 了解 NFV 中 Docker 容器的分步指南 虚拟机固然很好,但也存在一些问题: 您需要一个专用的操作系统。并且,你需要一个虚拟机管理程序来分离虚拟机以实现虚拟化。 更多的应用程序意味着更多的软件开销、更昂贵并且需要不断更新。 然而NFV架构需要虚拟机,所以我们来看看NFV架构。 步骤1:让我们从NFV架构中的Hypervisor开始 在此图中,我展示了 NFV 架构,您可能已经见过很多次(需要复习,请访问此处)。 出于本次讨论的目的,我将仅重点关注具有三个不同组件的 NFVI(NFV 基础设施): 虚拟机管理程序域、计算域和网络基础设施域。 虚拟化层实际上是虚拟机管理程序,它负责抽象计算域(物理/x86服务器)的硬件资源。例如,您可能有一个物理服务器(物理内存和物理计算),但虚拟机管理程序可以将其划分为多个虚拟内存和虚拟计算,每个实体都是独立的。 具有虚拟资源的虚拟化层(我们称为虚拟机管理程序)一起称为“虚拟机管理程序域”。 第 2 步:让我们放大虚拟机 为了理解虚拟机,我现在将扩展虚拟机管理程序域以显示该域内的内容。 看看下面的图2: 我在左侧显示了与上图 1 中相同的虚拟机管理程序域。但在右图中,我扩展了 Hypervisor 域以显示虚拟机。也就是说,管理程序域的虚拟资源现在显示为虚拟机。 为了简单起见,我删除了左侧的虚拟网络/网络块,因为它们对于本次讨论并不重要。 虚拟化层已成为资源/网络管理器。虚拟计算/内存已成为虚拟机 (VM) 那么什么是虚拟机呢? 虚拟机提供了VNF(虚拟网络功能)运行的环境。 如果您查看该图,就会发现每个虚拟机都链接到一个 VNF 。 让我们举个例子来说明一下。有一个称为虚拟 CPE 的 VNF1,另一个称为虚拟防火墙的 VNF2。从上面的示例中,每个都运行到自己的虚拟机中。然后可以通过虚拟机管理程序域在内部链接和连接它们。 另请注意,虚拟机在逻辑上是相互独立的。这使得在每个虚拟机上运行独立的操作系统成为可能。例如,客户操作系统OS1可以是Linux,客户操作系统2可以是Solaris(作为示例)。 除了来宾操作系统/操作系统之外,您是否注意到还需要主机操作系统/操作系统,这是虚拟机管理程序运行的环境。请记住这一点,因为我在下一段。 让我们继续前进,现在删除虚拟机。 步骤3.删除虚拟机并引入容器! 现在我引入了一个全新的组件Container来代替虚拟机 VNF1 现在在容器 1 中运行,VNF2 在容器 2 中运行,提供与虚拟机相同的功能。 我们所实现的是与虚拟机相同的功能,但在相同的操作系统(这里是 Linux)中。 您是否注意到现在不需要 Guest OS 了? 架构简单;不是吗? 我们通过容器实现了什么? 1. 容器环境中不需要Guest OperatingSystem (OS),可以看到Host OS是Linux。因此,与虚拟机相比,它们的重量更轻并且需要更少的开销 2. 通过删除虚拟机管理程序来简化架构,因为现在容器可以在同一主机操作系统内的操作系统级别保持足够的隔离。 3. 虚拟机提供硬件级虚拟化,这意味着经典虚拟机采用主机并通过虚拟机管理程序软件对其进行分区。这本质上意味着虚拟机与主机的操作系统是隔离的。您可以在 Linux 操作系统上运行 Windows 主机。另一方面,容器提供操作系统级别的虚拟化。也就是说,在同一个操作系统中,应用程序可以保持自身隔离。与虚拟机相比,这要少得多,因为整个操作系统不重复。 这就是关于容器的内容。 NFV 容器的未来 让我们面对现实吧,当前的 NFV 架构和标准都是基于虚拟机的。 容器对于 NFV 来说仍然是个新鲜事物。仍然有很多开发正在进行,特别是从安全角度来看。正如您所看到的,主机操作系统暴露给所有容器,因此可能存在潜在的多租户安全问题。 然而,考虑到在此类环境中运行 VNF 的便捷性和简单性,它们确实有望带来美好的未来。此外,他们还可以打开运行微服务的大门,而不是在虚拟机上运行完整的 VNF。
例如,在虚拟 CPE 的情况下,它的许多组件可以分解为小容器并链接在一起。通过分解功能,这将为小型软件供应商提供一个机会,以更少的开销轻松开发 VNF 的小型功能。
|