看懂云计算、虚拟化和容器,这一篇就够啦
从表面来看,这些虚拟机都是独立的服务器,但实际上,它们共享物理服务器的CPU、内存、硬件、网卡等资源。 物理机,通常称为“宿主机(Host)”。虚拟机,则称为“客户机(Guest)”。 谁来完成物理资源虚拟化的工作呢? 就是大名鼎鼎的Hypervisor。 Hypervisor,汉译过来是“超级监督者”,也叫做VMM(Virtual Machine Monitor,虚拟机监视器)。它不是一款具体的软件,而是一类软件的统称。 Hypervisor分为两大类: 第一类,hypervisor直接运行在物理机之上。虚拟机运行在hypervisor之上。第二类,物理机上安装正常的操作系统(例如Linux或Windows),然后在正常操作系统上安装hypervisor,生成和管理虚拟机。 像VMware、KVM、Xen、Virtual Box,都属于Hypervisor。 VMware大家应该很熟悉,就是VMware Workstation。学习Linux的话,很多人都是在windows系统下安装WMware,然后创建Linux虚拟机。 但是,真正厉害的,是KVM(kernel-based virtual machine,基于Linux内核的虚拟机)。它是目前最热门最受追捧的虚拟化方案。 KVM这样的Hypervisor软件,实际上是提供了一种虚拟化能力,模拟CPU的运行,更为底层。但是它的用户交互并不良好,不方便使用。 于是,为了更好地管理虚拟机,就需要OpenStack这样的云管理平台。 关于OpenStack,我之前曾经介绍过(链接)。它有点像个商店,负责管理商品(计算资源、存储资源、网络资源等),卖给用户,但它本身不制造商品(不具备虚拟化能力),它的商品,来自于KVM。当然,如果不用KVM,也可以用Xen等其它hypervisor。 OpenStack的管理界面,比命令行好多了吧? 请记住,上面所说的几个概念,包括VM、KVM、OpenStack等,都主要属于IaaS(基础设施即服务)。这个不难理解吧? 什么是容器 继续往下说。 那么,容器是什么呢?大佬们经常说的Docker和K8S,又是什么呢? 前面我们介绍了虚拟化。人们在使用虚拟化一段时间后,发现它存在一些问题: 不同的用户,有时候只是希望运行各自的一些简单程序,跑一个小进程。为了不相互影响,就要建立虚拟机。如果建虚拟机,显然浪费就会有点大,而且操作也比较复杂,花费时间也会比较长。 而且,有的时候,想要迁移自己的服务程序,就要迁移整个虚拟机。显然,迁移过程也会很复杂。 有没有办法更灵活快速一些呢? 有,这就引入了“容器(Container)”。 容器也是虚拟化,但是属于“轻量级”的虚拟化。它的目的和虚拟机一样,都是为了创造“隔离环境”。但是,它又和虚拟机有很大的不同——虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。 虚拟化 VS 容器 而大家常听说的Docker,就是创建容器的工具,是应用容器引擎。 Docker的中文意思,就是码头工人。而它的LOGO,就是一只鲸鱼背着很多货柜箱。 相比于传统的虚拟机,Docker的优势很明显,它启动时间很快,是秒级,而且对资源的利用率很高(一台主机可以同时运行几千个Docker容器)。此外,它占的空间很小,虚拟机一般要几GB到几十GB,而容器只需要MB级甚至KB级。 除了Docker对容器进行创建之外,我们还需要一个工具,对容器进行编排。 这个工具,就是K8S。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |