VMware容器解决方案一览

 夏彬 译 分布式实验室 

VMware容器解决方案一览

最近,VMware宣布了几项关于容器的和如何构建云原生应用(cloud-native application)的技术和方案。这次公告的目标客户是传统的VMware客户,他们的特点是他们会关注Docker等新技术,同时对于离开可信的供应商又是比较谨慎的。整合了vSphere的容器技术(vSphere Integrated Containers)和Photon平台给与了这些客户一个机会来开始构建云原生应用。

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

vSphere Integrated Containers

VMware容器解决方案一览

第一个方案是整合了vSphere的容器技术(vSphere Integrated Containers,简称vIC),这是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容器解决方案一览

在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,简称VIH)。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容器解决方案一览

 

Photon平台

VMware容器解决方案一览

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

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

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平台则是一种适用于大规模容器的架构。

从图中可以看出,Photon Controller是一种超级管理器(uber-manager),用来管理容器和调度资源,就像Docker Machine/Compose/Swarm、Kubernetes和Apache Mesos一样。换句话说,你可以使用Photon Controller来创建和管理Kubernete集群或者Mesos集群。类似的做法是,vRealize Automation (vRA)可以管理不同的vSphere集群,其中的ESXi宿主机可以被vCenter实例来管理。Photon Controller可以与Lightwave项目整合,来提供身份访问管理。将来,Photon Controller会包含更多的插件,提供创建、监控、管理等多种能力。

小结和更多资源

在以容器为中心的、云原生应用方面,VMware正在进行各种探索。尽管很多人认为VMware是一个传统公司,但是需要注意的是,VMware的客户群将会谨慎地转向容器技术。VMware提出了vIC和Photon平台,提供给客户一个转向容器技术的方案。虽然,不能保证VMware在开源世界和云原生领域中一定会成功,但是他们已经踏出了积极的一步,创建了云原生应用团队,并开源了Photon Controller。无论如何,这显示了对于开源世界,VMware并不是空口说白话。总之,VMware不应该被忽视。

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

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

  • Bonneville项目和vIC(https://blogs.vmware.com/cloudnative/author/ben_corrie/)

  • vIC技术一览(https://blogs.vmware.com/vsphere/2015/10/vsphere-integrated-containers-technology-walkthrough.html)

  • 深入VMware的Photon Controller(http://blogs.vmware.com/cloudnative/vmware-photon-controller-deep-dive/)


上一篇:更改vCenter6.7的时区和时间


下一篇:photon磁力下载工具