作者:jameswhale 2020-06-10 07:42:52
云计算
虚拟化 近几年容器(Container)、Kubernetes等技术在数据中心、云计算、各互联网公司的业务服务中得到广泛应用。
网站建设、成都网站设计的开发,更需要了解用户,从用户角度来建设网站,获得较好的用户体验。创新互联建站多年互联网经验,见的多,沟通容易、能帮助客户提出的运营建议。作为成都一家网络公司,打造的就是网站建设产品直销的概念。选择创新互联建站,不只是建站,我们把建站作为产品,不断的更新、完善,让每位来访用户感受到浩方产品的价值服务。
本文转载自微信公众号「 jameswhale的技术人生」,转载本文请联系 jameswhale的技术人生公众号。
原文链接:https://mp.weixin.qq.com/s/LOXB36aevXoH9EQHFr5E9Q
原文出处: jameswhale的技术人生
微信公众号的ID:jameswhale的技术人生
前言
近几年容器(Container)、Kubernetes等技术在数据中心、云计算、各互联网公司的业务服务中得到广泛应用,和20世纪60年代就兴起的虚拟机(Virtual Machine,VM)技术一样,容器也是一种服务虚拟化技术(Server Virtualization),但是它更加轻量,同时将焦点从Machine转移到Application,极大提高了开发、测试、生产环境部署的效率,不过其安全性和隔离性比虚拟机稍逊一筹,在一些场景下也无法完全替代虚拟机。本文主要从以下几部分来梳理虚拟机和容器技术,详细讲一下他们的区别与联系。
为何需要服务虚拟化技术?
服务虚拟化技术的分类
综合以上,直接访问资源可以提供本机级别的性能,但是会牺牲可移植性,为了获得更好的可移植性,虚拟化供应商将进一步开发可感知VMM/Hypervisor的半虚拟化Guest操作系统驱动程序,这些驱动程序将表示合成虚拟设备,如网卡和存储控制器。使用合成设备驱动程序将允许 Guest 操作系统看到一组一致的硬件资源(即使迁移到不同的Host),同时仍然能够提供接近本机的性能。
操作系统虚拟化以应用程序为中心,允许多个虚拟环境(VE)共享一个通用操作系统,每个环境的运行开销比完全虚拟化的主机少得多。单就内存而言,虚拟机的需求就相当大。例如,假设八个虚拟机在一个Host服务器上运行,并且每个 Guest操作系统使用512MB的RAM。这意味着,在不计算应用程序或VMM开销的情况下,虚拟化的成本将是8x512 MB,或者是4GB的RAM。假设每个操作系统安装需要4GB的磁盘空间,那么物理主机系统上需要32GB的磁盘空间来存储所有Guest操作系统。
操作系统虚拟化的另一个好处是它不需要虚拟环境中的任何驱动程序或完整硬件仿真。这允许虚拟环境中的I/O以接近本机的性能运行。由于VE作为应用程序外壳运行,它们提供了与VM相同的可移植性,不需要依赖于主机系统硬件(但是必须都在Linux操作系统上)。
安全性和隔离性不如虚拟机(操作系统提供的应用级别隔离),单就这一点,容器技术无法替代虚拟机技术。
Host-based server virtualization(虚拟机)架构
根据有无 Host 操作系统,虚拟机分为两大类。
Type2(有操作系统)
VMM(Virtual Machine Monitor)/Hypervisor的作用
指令的执行等级
指令执行等级分为Ring0~Ring3,通常操作系统内核运行在Ring0,设备驱动运行在Ring1~Ring2(也可都运行在Ring0),应用程序运行在Ring3。
操作系统虚拟化技术(OS virtualization ,容器)
架构OS虚拟化层借助Linux操作系统内核的特性(比如namespace,cgroup等)为每个应用程序构建独立的虚拟环境(VE-id),各自拥有独立的根文件系统、启动脚本、init、进程ID(同一虚拟环境下的进程ID不重复,不同虚拟环境下的进程ID可以重复),使其认为独占了整个硬件系统。虚拟环境(VE)不需要安装操作系统、设备驱动等,相比虚拟机,要省去了很多内存和硬盘开销。同时,不需要模拟硬件指令(直接调用操作系统的system Call),虚拟环境中的应用程序执行性能接近本机。
内核对容器的支持
基于容器的虚拟化使用了内核提供的许多功能,以便隔离进程或实现其他有助于实现此目的的目标,大多数解决方案都基于Linux内核,由于内核提供了所需的大部分功能,容器工具包通常不必再次实现它们,内核代码已经被其他被认为是稳定的并且已经在生产中使用的软件所使用。如果内核提供的机制存在安全问题,则会随着内核更新而分发修复程序,这意味着不需要修补容器软件,用户只需保持内核的最新状态。
虚拟机技术举例(VMWare ESXi)
VMWare在虚拟机市场处于领导地位,以VMWare的ESXi举例。
VMkernel提供与操作系统类似的功能,例如,进程创建与控制,信号,文件系统,进程和线程等,它是专门设计用来支持运行多个虚拟机,提供如下核心功能:资源调度,设备驱动,输入输出栈等。直接运行在硬件设备上面,不再需要借助通用的操作系统。
VMWareESXi优势(相比其他虚拟机平台)
容器技术举例(Docker)
Docker镜像样例
从镜像到容器(实例化)
镜像内容分发
容器虚拟化技术从FreeBSD jails,solaris Zones,到Linux Containers(LXC),再到这几年名声大噪的Docker Containers,极大的提高了开发、测试、生产环境部署的效率。Docker容器技术通常是指如下三个部分。
虚拟化技术在云平台的应用(Google Cloud Platform,GCP)
Google Compute Engine(GCE,Google计算引擎)是Google云平台的基础设施即服务(IaaS)组件,它建立在运行Google搜索引擎、Gmail、YouTube和其他服务的全球基础设施之上。GCE允许用户按需启动虚拟机(VMs),VMs可以从用户创建的标准图镜像或自定义镜像启动。
GCE采用KVM作为其虚拟机的VMM/Hypervisor,KVM(Kernel-based Virtual Machine)是一个完全虚拟化方案,同时包含了CPU硬件提供的虚拟化技术扩展(IntelVT或AMD-V),适用于x86硬件上的Linux。可加载的内核模块(kvm.ko,intel的是kvm-intel.ko,amd的是kvm-amd.ko)提供核心虚拟化基础架构。使用KVM,可以运行多个含有未经修改的Linux或Windows Guest OS的虚拟机,每个虚拟机都有专用的虚拟硬件:网卡、磁盘、图形适配器等。
通过K8s容器编排系统在VMs之上部署多个容器,一方面可以快速启动程序(容器比虚拟机启动时间要小很多),二是可以有效降低虚拟机的额外负载(容器可以部署多个,虚拟机则只能部署少量的),三是可以实现容器的自动升级、节点修复、自动扩缩容等特性。
分享文章:从虚拟机到容器,详谈各种服务虚拟化技术及其应用场景
链接地址:http://www.shufengxianlan.com/qtweb/news6/148956.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联