VMware 容器解决方案一览
VMware 容器解决方案一览
本文介绍了VMware最近宣布的两项容器解决方案,分别是vIC(整合了vSphere的容器技术vSphere Integrated Containers)和Photon平台,并与现有方案进行了对比。
最近,VMware宣布了几项关于容器的和如何构建云原生应用cloud-native application的技术和方案。这次公告的目标客户是传统的VMWare客户,他们的特点是他们会关注Docker等新技术,同时对于离开可信的供应商又是比较谨慎的。vIC(整合了vSphere的容器技术vSphere Integrated Containers)和Photon平台给与了这些客户一个机会来开始构建云原生应用。
然而,VMware提出的大量的新技术和新术语对于传统的VMware管理员们、架构师们和顾问们带来了新的挑战。本篇博文尝试搞清楚这些新的方案,并与现有方案进行对比。
vSphere Integrated Containers
第一个方案是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。
在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提供的这张幻灯片很好地做了总结:
Photon平台
如果说vIC是针对从传统虚拟机过渡到容器的客户的解决方案,那么Photon平台就是针对完全使用容器和Kubernetes、Mesos等容器管理工具的客户的解决方案。Photon平台被设计来提供可扩展性和高性能,就像“Google风格”的数据中心架构一样。在Photon平台中,为了完成这个目标,VMware将传统的ESXi虚拟层替换为一种新型的轻量级的“microvisor”,将容器作为应用发布的基本单元,并使用一种新型的、经过优化的容器管理工具,称为Photon控制器Photon Controller。
了解Photon平台的一个好方法就是与另一种容器架构比较,比如CoreOS的Tectonic平台。
图中的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平台的文章:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《循序渐进学Docker》——1.4 本章小结
本节书摘来自华章出版社《循序渐进学Docker》一书中的第1章,第1.4节,作者李金榜 尹烨 刘天斯 陈纯,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 1.4 本章小结 本章概括性地介绍了Docker是什么,它有哪些独特的物理特性,以及它适用于哪些场合和能带来哪些好处。它灵活便利,但也有一定的学习成本。下面章节中我们将循序渐进,讲解Docker的使用方法。
- 下一篇
《Python高手之路》——2.3 外部库
本节书摘来自异步社区《Python高手之路》一书中的第2章,第2.3节,作者[法]Julien Danjou(朱利安•丹乔), 王飞龙 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.3 外部库 你是否有过这样的经历,收到一件不错的生日礼物或圣诞礼物,但是打开后却发现送你的人忘了买电池?Python的“内置电池”哲学让你作为程序员不会遇到这类问题,只要安装了Python,就拥有了完成任何功能所需的一切条件。 然而,Python标准库的开发者并不能预测你要实现的“任何”功能到底是什么。即使可以,大多数人也不想去处理一个几个GB的文件下载,即使可能只是需要写一个重命名文件的快速脚本。关键在于,即使拥有所有的扩展功能,仍然有许多功能是Python标准库没有涵盖的。不过,这并不是说有些事情是根本无法用Python实现的,这只是表明有些事情可能需要使用外部库。 Python标准库是安全且范围明确的:模块文档化程度很高,并且有足够多的人在经常使用它,从而可以保证在你想使用它时肯定不会遇到麻烦。而且,就算万一出了问题,也能确保在短时间内有人解决。但是,外部库就像是地图上标着“熊出没,请...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16