基于云计算的容器技术概述
2019-03-30郎丰凯
郎丰凯
【摘要】本文首先对云计算的发展进行描述,包括云计算的概念以及优势,提出云计算当前遇到的问题,接着概括云计算中关键的虚拟化技术,引出容器技术的概念和三大资源编排引擎,随后介绍容器技术的优势与发展现状,提出容器技术发展中需解决的问题,最后对容器技術的发展进行展望,并对容器技术的优势进行肯定。
【关键字】 云计算 虚拟化 容器 编排引擎
引言
随着科学技术的发展与社会的进步,信息化革命经历了三次巨大变革。IT企业在信息化革命促进下发展壮大,但出现一些亟待解决的问题:①传统IT企业中软件与各种硬件资源相互绑定的部署模式,导致资源利用率较低。②IT企业层次繁多且复杂,部署新业务周期较长,并且无法及时提供所需资源。③中小企业不具备足够的经验和财力,去开发并维护自己的基础设施平台。为了解决此类问题,通过虚拟化实现云计算技术,而在不同的虚拟化产物中,发展较为成熟的是虚拟机。在虚拟化技术的提升中,开发出容器技术,既能提高资源利用率又能提升计算效率。
一、云计算的概念与构建
云计算(Cloud Computing)的提出是在2006年的搜索引擎的会议上,但云计算的定义并未达成共识。根据云计算的特征,给出如下定义:云计算利用虚拟化通过网络打破传统地域的限制,将可使用的IT资源构建成资源池,提高资源利用率,以按需计费的商业模式服务于各类客户[1]。
云计算从技术层面提供云服务,可分为IaaS(将基础设施作为服务)、PaaS(将平台作为服务)、SaaS(将软件作为服务)这三个层面。IaaS是云厂商将服务器云化构建成资源池,为用户按需供应基础设施服务,实现智能的资源分配。PaaS是云厂商提供软件运行平台,降低用户软件开发、维护的成本与开发门槛。SaaS是将各类软件通过服务器端为软件用户提供服务,用户通过租赁无需购买和安装即可获取软件服务。但云计算技术难以构建信任边界,数据在传递中易被盗取;云提供商不同导致标准不统一,难以在相互间移植;需建立相关法律监管云提供商,保障用户隐私与IT资源的安全。
二、虚拟化技术与容器技术
虚拟化技术与容器(Container)技术在服务供给方式上有着相同的特点,容器可作为轻量化的虚拟机。虚拟机将多余资源虚拟化,而容器技术是对操作系统层进行虚拟化。
2.1虚拟化技术
虚拟化技术将计算机资源虚拟成多个相互独立的机器,实现资源利用率最大化。其中服务器虚拟化发展较广泛,同时是IaaS层面的基础。被虚拟化出来的物理服务器被称作虚拟机[2],在其内部的操作系统称作Guest OS,而虚拟机用于资源调度,Guest OS可通过VMM访问硬件资源。虚拟机有着各自的操作系统,体积较大并且相互独立,每次运行均需重新部署,难以管理并会降低运行效率。
2.2容器技术
容器技术类比于集装箱理论,将所需运行的应用程序或者库进行封装,可实现容器内部程序的直接运行[3]。容器称作轻量级的虚拟机,突出容器小型化的优势。随着实际需求的提升,需要同时创建几百或者几千个虚拟机并运行,会造成资源大量消耗并降低运行效率。而容器技术的出现使虚拟机的问题得到解决,因为容器是对操作系统进行虚拟化实现,共享同一个操作系统无需重新构建,极大地提高整体性能。
图2显示容器可直接对物理资源层进行访问,这个优势让容器能够快速启动。容器所需镜像小且标准化统一,直接在运行环境上面进行简单高效地部署。容器技术仅需要对Bins/Libs进行打包,所占资源量极小,轻量化特性极强,并且具备虚拟机相互隔离、资源分配的优势。容器的性能以及效率接近物理机,微服务化特性极大地提升了资源利用率。容器可实现不同平台之间的相互迁移,可移植性强,实现在不同平台的无差别运行。
三、Docker容器及研究现状
容器的发展当中,Docker容器发展较快并且也技术较成熟,可作为容器的代名词,但除了Docker容器还有Mesos容器和Coreos容器。Docker容器用Go语言实现,通过Linux内核提供容器技术服务。而在容器平台技术当中,将容器资源编排分为Mesos、Kubernetes、Docker这三类引擎。
Mesos引擎[4]是由容器的集群资源调度和应用管理框架来构成,可直接管理数据中心的资源并进行资源分化,提高不同应用的开发效率,并实现在Mesos资源池中资源共享,提升资源的利用率。Kubernetes引擎[5]是用于资源分配调度的轻量级引擎,可以实现应用的管理编排,所构成的集群架构自成体系,进行应用程序的自动化地安装、部署与运行。Docker引擎[6]为用户提供容器集群服务,由Docker开发实现容器资源管理。通过Docker link连接容器构建网络,根据不同的功能将容器集群划分成组并相互隔离。利用Swarm这个在Docker容器的基础之上建立的编排引擎,将容器组整合起来实现所有容器的全网络管理。
张兆晨等人[7]为了能够快速研发软件、保证产品质量、降低运营成本。构建基于Jenkins的持续集成架构,通过Docker容器技术实现平台容器化,来保障用户需求。佟凡等人[8]利用Docker容器在处理数据上面的优势,将其用于复杂大量地生物信息处理当中,将生物信息数据以及相关处理工具封装起来,直接可供生物信息处理人员使用。李巍等人[9]针对Docker在网络架构上的局限性,以及网络端口与物理端口相互映射相互冲突的问题。提出基于Macvlan的Docker网络隔离的方案,有效解决端口相互映射冲突的问题,并且不易降低网络的性能。
四、总结
本文介绍了云计算的发展脉络,介绍了虚拟化技术的特点及优势,最后描述虚拟机的优势及不足,引出容器技术轻量级的特点以及可移植性强的优势,根据Docker的发展现状以及未来前景,可将其从以下几个方面进行改进:①提高容器资源之间的隔离程度;②因为合理程度不高,需提高容器安全性性能;③因为几千台容器可在一台物理机上同时运行,需强化容器的管理;④容器编排系统的技术虽在不断提高,但仍需对编排引擎进行不断改进。容器技术的发展前景广阔,必将发展成为云计算中重要的技术手段。
参 考 文 献
[1]龚奕利, 贺莲, 胡创. 云计算:概念、技术与架构[M]. 北京:机械工业出版社, 2014.
[2] XIAO Z, SONG W, CHEN Q. Dynamic Resource Allocation Using Virtual Machines for Cloud Computing Environment[J]. IEEE Transactions on Parallel and Distributed Systems, 2013, 24(6):1107-1117.
[3]MADHUMATHI R. The Relevance of Container Monitoring towards Container Intelligence[C]. ICCCNT. IEEE, 2018: 1-5.
[4]刘文斌. 基于Mesos的数据中心资源调度和存储性能优化技术研究[C]. 广西大学, 2018.
[5]周佳威. Kubernetes 跨集群管理的设计与实现[D]. 浙江大学, 2017.
[6]孙宏亮.Docker 源码分析[M]. 机械工业出版社, 2015.
[7]张兆晨, 罗铁坚. CCI:一种基于容器化的持续集成系统[J]. 中国科学院大学学报, 2018, 35(4):569-575.
[8]佟凡, 王小磊, 李江域, 等. Docker技术在生物信息学中的应用[J]. 军事医学, 2016,40(7):614-616.
[9]李巍, 赵永彬, 王鸥, 等. 基于Macvlan的Docker容器网络架构研究[J]. 机械设计与制造, 2017(5):270-272.