天天看点

VMware 容器解决方案一览VMware 容器解决方案一览

本文介绍了vmware最近宣布的两项容器解决方案,分别是vic(整合了vsphere的容器技术vsphere integrated containers)和photon平台,并与现有方案进行了对比。

然而,vmware提出的大量的新技术和新术语对于传统的vmware管理员们、架构师们和顾问们带来了新的挑战。本篇博文尝试搞清楚这些新的方案,并与现有方案进行对比。

<a></a>

VMware 容器解决方案一览VMware 容器解决方案一览

第一个方案是vic(整合了vsphere的容器技术vsphere integrated containers),这是vmware提出的一个进化的容器方案。根据vmware的介绍,vic的理念是,容器本质上是"一个打包了依赖的、用于执行的、存在于私有命名空间private namespace的、资源受限的二进制可执行文件",而容器宿主container host是“一个包含了必要的存储和网络架构的计算资源池,用于管理容器”。如果你接受这样一个前提的话,那么是什么构成容器和容器宿主并不重要,只要开发者们可以使用类似docker apis这样的标准容器apis来访问这些资源就可以了。

vic是从bonneville项目发展而来,它将容器技术解构成了若干基本能力,然后通过组合vmware的esxi、photon os和instant clone等技术来替换这些能力。这个解决方案可以将传统的vsphere架构和容器技术连接起来,使得vmware管理员使用熟悉的vmware工具(如vsphere)来管理这些特定类型的容器。

通过下面这张图来对比一下docker容器技术和vic。

VMware 容器解决方案一览VMware 容器解决方案一览

在vic架构中,esxi虚拟层(hypervisor)替代linux服务器作为docker容器的宿主机操作系统。为了替代linux内核隔离机制来创建容器,如namepaces和cgroups,vic借助了esxi的硬件虚拟化机制来创建容器虚拟机container vms。为了使传统的vsphere虚拟机具备和linux容器相匹配的启动速度,vic使用photon os的一个“微小版本”pico version作为vm,并创建一个0开销的拷贝,称为jevm(just enough vm)。jevm是一种新型的容器vm,共享父虚拟机的内存。当内存页发生改变的时候,写时拷贝copy-on-write操作将为子虚拟机创建一个新的内存页。每当一个新的容器创建时,都会重复这一过程。

vic的其中一个优势是,可以使用现有的工具(如vcenter)来管理容器宿主机,原因是容器宿主机本质上就是一台esxi主机或者vsphere集群。这意味着vic可以利用vsphere的高级功能,如ha、vmotion和分布式资源调度distributed resource scheduling(drs)。我们把这种抽象称为虚拟容器宿主机virtual container host。vmware将vih定义为“具有完全动态边界的容器终结点container endpoint with completely dynamic boundaries”,在这个边界内,vsphere资源管理器处理容器如何放置,从而虚拟docker宿主机可以是一个完整的vsphere集群,也可以是这个集群的一部分”。这对于有些人可能很容易混淆,我的理解是,drs允许容器虚拟机可以在vsphere集群中的esxi宿主机之间来回迁移。这样一来,我们可以把托管传统虚拟机的vsphere集群称为虚拟的vm宿主机virtual vm host。

作为容器终结点,vih机制向开发者暴露了docker apis,使得他们与vic交互的方式和与基于linux的docker容器的交互方式是完全相同的。同时,vih和vic实例可以通过vsphere网页客户端管理,就像传统的vsphere资源一样。

来自vmware的georg hicken提供的这张幻灯片很好地做了总结:

VMware 容器解决方案一览VMware 容器解决方案一览
VMware 容器解决方案一览VMware 容器解决方案一览

如果说vic是针对从传统虚拟机过渡到容器的客户的解决方案,那么photon平台就是针对完全使用容器和kubernetes、mesos等容器管理工具的客户的解决方案。photon平台被设计来提供可扩展性和高性能,就像“google风格”的数据中心架构一样。在photon平台中,为了完成这个目标,vmware将传统的esxi虚拟层替换为一种新型的轻量级的“microvisor”,将容器作为应用发布的基本单元,并使用一种新型的、经过优化的容器管理工具,称为photon控制器photon controller。

了解photon平台的一个好方法就是与另一种容器架构比较,比如coreos的tectonic平台。

VMware 容器解决方案一览VMware 容器解决方案一览

图中的photon machine是一种新的基于esxi的微虚拟层microvisor,它使用了photon os,提供了容器宿主机操作系统和容器运行时container runtime。刚开始这可能是令人疑惑的,因为在tectonic平台中,容器宿主机操作系统是基于linux的最小化系统coreos,而容器运行时是不同的,可以是rkt,也可以是docker。在vmware术语中,容器宿主机操作系统是微虚拟层,容器运行时是photon os。

从这张图往上看,photon controller是一种分布式的控制层control plane和资源管理器resource manager,用来管理大量的photon machines。单个控制器monolithic controller,如vcenter,可扩展性往往存在一定的局限,而photon controller没有这种局限。例如,vic就是使用vcenter来管理的容器解决方案,具有中等的可扩展性,而photon平台则是一种适用于大规模容器的架构。

另外,我建议读者们阅读以下关于vic和photon平台的文章:

<a href="https://blogs.vmware.com/vsphere/2015/08/how-to-choose-the-best-infrastructure-stack-for-your-cloud-native-applications.html">如何为你的云原生应用选择最好的架构</a>

<a href="https://blogs.vmware.com/cloudnative/author/ben_corrie/">bonneville项目和vic</a>

<a href="https://blogs.vmware.com/vsphere/2015/10/vsphere-integrated-containers-technology-walkthrough.html">vic技术一览</a>

<a href="http://blogs.vmware.com/cloudnative/vmware-photon-controller-deep-dive/">深入vmware的photon controller</a>

本文来自云栖社区合作伙伴“linux中国”

原文发布时间为:2013-04-02.