容器与虚拟机,正在互相替代还是逐渐融合?

最近一两年来,以容器为代表的云原生技术一直是IT行业最为热门的话题。随着云原生技术的崛起,有企业甚至跳过了IaaS层直接在物理机上部署容器。容器的风头几乎盖过云计算,甚至引发了OpenStack的未来堪忧的说法,容器与虚拟化谁将会是市场主流的话题时常被提起。有不少人认为,容器的普及对虚拟机形成了冲击,于是就有了早些年的容器与虚拟机之争。
事实上,虽然许多企业正在将基于虚拟机的应用程序迁移到容器,但事实上虚拟机在数据中心和公有云中仍然普遍存在。一方面,容器并没有完全替代虚拟机,另一方面虚拟机也在积极支持容器,两者共存的情形反而越来越普遍。
虚拟机和容器各有优势
虚拟机和容器诞生的初衷,都是为了更好的提高资源利用率,但两者的区别在于:虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。
虚拟机(Virtual Machine),是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
虚拟机的出现,解决了早期在物理服务器上部署应用但无法为其应用程序定义资源边界而导致的资源分配问题。
但是在使用虚拟化一段时间后,会发现它存在一些问题,例如:虚拟机的系统层会占用比较多物理机的资源,需要更进一步提高服务器的资源利用率;当需要迁移虚拟机服务程序时,需要迁移整个虚拟机,迁移流程复杂。
为了解决这些问题,容器就出现了。
容器技术,可以理解为操作系统虚拟化技术,它是一种轻量级的虚拟化技术。通过内核创建多个虚拟的操作系统实例(内核和库),来隔离不同的进程(容器),不同的实例相互隔离,相互之间完全无感知。可以简单地理解为容器就是一个进程沙盒,来提供进程级的隔离。
相比于虚拟机,容器没有自己的操作系统,而是通过容器引擎来实现共享宿主机操作系统内核,从而减少需要运行多个操作系统的开销。
总的来说,容器和虚拟机具有相似的资源隔离和分配优势,但功能不同。容器虚拟化的是操作系统而不是硬件,因此容器更加轻便高效。但是如果用户需要使用在不同操作系统上运行的不同应用程序,虚拟机就能提供可靠的解决方案和更好的安全性。
因此,如今最有效和最常用的策略是,拥有一台具有多个虚拟机的物理机,每个虚拟机都有多个容器。容器和虚拟机一起使用,为部署和管理应用提供了极大的灵活性。
容器与虚拟机之争根本不存在
容器和虚拟机有着各自的优势,虽然在应用场景上有一些重叠,但主要应用场景还是有区别的,未来这种两种技术会长期共存,甚至走向融合。
比如,虚拟机更适合当应用程序运行时需要所有操作系统资源和功能的场景,如果需要运行多个这样的应该,使用虚拟机更为合适。相比较而言,容器更适合在更少的服务器上运行更多的应用。大部分情况下大多数企业会同时使用虚拟机和容器。鉴于此,容器和虚拟化应当会在相当长时间内共存,特别是考虑到大多数企业此前已经广泛部署虚拟化技术的现实。
实际上,如何同时管理虚拟化和容器技术就成为企业的一个普遍的需求。在红帽4月底举行的年度技术大会Red Hat Summit 2020大会上,红帽宣布推出OpenShift 虚拟化的技术预览,OpenShift 虚拟化就源自KubeVirt开源项目。企业可以通过这一功能,在整合了云原生与传统工作负载的OpenShift上开发、部署和管理由虚拟机、容器和无服务器构成的应用。
企业上云,选创新互联云:
创新互联提供高防服务器、云服务器、香港服务器、服务器租用托管等
本文名称:容器与虚拟机,正在互相替代还是逐渐融合?
分享地址:http://hbruida.cn/article/sdcdee.html