一种基于云平台的镜像裁剪及多架构镜像构建方法技术

技术编号:37682124 阅读:11 留言:0更新日期:2023-05-28 09:35
本发明专利技术涉及计算机云计算技术领域,更具体地说是一种基于云平台的镜像裁剪及多架构镜像构建方法,通过引入基于层的镜像管理技术,将镜像管理粒度从以镜像为单位调整为以镜像层为单位,镜像层保存特定的内容并采用唯一的指纹标识,镜像可以按需、以层为单位分离拼接,为镜像剪裁、异构镜像快速生成、镜像预热提供技术支持,基于层的镜像管理技术将镜像层信息和镜像层之间的关系存储在镜像元数据仓库中,对现有的镜像规范零侵入,兼容已有镜像,解决云原生环境下镜像存储空间占用大、镜像分发效率低下、镜像启动速度慢、适配新架构时需要重新制作镜像、多架构镜像维护成本高等问题。多架构镜像维护成本高等问题。多架构镜像维护成本高等问题。

【技术实现步骤摘要】
一种基于云平台的镜像裁剪及多架构镜像构建方法


[0001]本专利技术涉及计算机云计算
,更具体地说是一种基于云平台的镜像裁剪及多架构镜像构建方法,主要用于轻量级云平台和云原生应用。

技术介绍

[0002]云原生技术作为一种新型技术体系,自2013年首次被提出以来,经过快速发展,已经成为未来云计算发展方向,CNCF基金会的成立标志着云原生技术正式走向大众,随着近几年云原生生态的不断壮大,所有主流云厂商均加入了CNCF基金会,云原生生态百花齐放。
[0003]云原生技术是以容器为基础,结合微服务、DevOps等技术构建的一套云技术产品体系,容器技术作为云原生技术基础,在云原生体系中扮演着至关重要的角色。
[0004]镜像作为容器的载体,包含容器运行环境,docker镜像规范是事实上的容器镜像标准,镜像由镜像层组成,一个完整的镜像通常包含多个镜像层,docker提供了docker bu i l d命令用于镜像制作,用户按照docker镜像语法规范编辑dockerfi l e文件,将制作镜像的指令写到dockerfi l e中,以dockerfi l e文件作为输入,运行docker bu i l d命令完成镜像制作,dockerfi l e中的特定指令会生成一个镜像层,如ADD、RUN指令,这些指令用于完成诸如将应用安装包和依赖拷贝到镜像中、运行脚本完成应用部署、修改应用配置等操作。用户通常不需要从零开始构建镜像,更多的是基于已有的镜像制作新镜像,镜像派生使得镜像之间具有父子关系,子镜像会继承父镜像所有镜像层,并在父镜像镜像层基础上增加新镜像层实现自己的功能。
[0005]镜像是docker管理的基本单位,制作好的镜像需要导出、分发到生产环境中部署启动,导出的镜像包含所有的镜像层,为提高镜像分发效率,docker提供了docker regi stry用于支持镜像分发服务,docker regi stry即镜像仓库,镜像被导入docker regi stry后,docker客户端即可通过网络访问docker regi stry以检索、下载镜像,镜像运行前,首先要被下载到本地镜像仓库中,如果本地镜像仓库不存在待运行镜像,则docker服务会访问docker regi stry,检索、下载目标镜像。
[0006]镜像自包含的特点(镜像包含应用及应用运行所需的环境,除了应用本身,应用运行所需的依赖库、配置、工具等全部包含在镜像中)以及镜像之间的派生关系显著增加了镜像大小,如基于CUDA的AI模型镜像通常在5G以上,部分镜像大小可以达到10G以上,大数据相关镜像如HDFS、YARN等通常在2G左右,包含JAVA运行环境的基础镜像在700M左右。
[0007]容器技术属于轻量级虚拟化技术,在容器云平台启动实例之前,需要将镜像从本地上传到镜像仓库,再分发到运行节点,一旦镜像准备就绪,容器可以在毫秒级别启动,经测试,上传、下载镜像的时间平均占到了容器部署时间的90%以上,过大的镜像占用大量的网络带宽,尤其在环境受限的内网和安全网络中,一台物理机上通常运行10个甚至更多的容器,随着运行容器的增加和单个镜像大小的增加,存储镜像所需的空间激增。
[0008]上述问题的根本原因是现有镜像技术侧重以镜像为粒度的管理方案导致的,主要问题如下:
[0009]1、镜像存储空间占用大,镜像分发效率低下:
[0010]镜像过大,一方面是由于镜像自包含特性决定的,镜像中需要打包应用以及应用运行所需的所有环境,包括OS基础库和各种业务库、依赖组件,这些环境本身就占用可观的存储。
[0011]镜像过大的另外一个原因是镜像层导致的,镜像层之间属于堆砌的关系,上层在下层的基础上扩展,删除或者修改文件是通过追加新层,在新层中写入删除标记或者新增文件实现的,删除标记、新文件遮挡了底层文件的所有版本,原始的文件和所有文件副本依旧保留在下层中,即便在同一镜像层中,垃圾文件的存在也会导致镜像层大小的增加,如拷贝到镜像层中的应用安装包以及部署应用时产生的临时文件,在应用部署完成后即成为垃圾数据,这些数据显著增加了镜像大小。
[0012]镜像过大严重降低了镜像导入导出和分发效率,占用了宝贵的存储和网络资源,延长了应用部署启动时间。
[0013]2、对异构平台、国产硬件支持不友好:
[0014]异构平台由于CPU架构的不同,其指令集和二进制文件也不兼容,每支持一种新架构时,需要重新制作对应架构的镜像,即便应用本身并未变化,新镜像制作、存储、测试维护需要消耗额外的成本,从应用角度看,这些消耗是应该避免、没有意义的,多架构的镜像进一步加剧了镜像大小的膨胀,当分发镜像时,需要支持所有可能的架构,因此相关架构的镜像都要被分发到现场,存储在镜像仓库中并保持更新维护,国产化硬件的推广和应用使得这一情况变得更加严峻。
[0015]3、镜像拉取、启动速度慢,系统响应效率低下:
[0016]大规模分布式系统,尤其是线上系统具有很高的实时性要求,平台承载的部分应用具有非常强的动态性和实时性,需要根据应用负载动态启停容器,以便快速响应用户需求,如一些动态分析任务,用户下发请求后必须快速启动,完成计算、统计完结果后立即销毁,以释放资源,这类高性能平台对容器启动效率要求很高,在现有技术体系下,镜像拉取在节点接收到容器启动请求后才开始,极大降低了系统响应速度,无法支持高性能系统的运行。
[0017]上述问题可以从以下几个方面解决:
[0018]1、优化镜像制作流程,通过合理的镜像制作流程减少镜像层,较少的层有助于减少镜像大小;
[0019]2、采用以层为粒度的管理策略,分层优化,将镜像层分为公共镜像层、文件拷贝层和业务镜像层,每层存储特定内容,公共镜像层保存基础运行环境,业务镜像层存储应用,通过功能标签标识镜像层能力,并将镜像层信息记录到镜像元数据仓库中,如JAVA能力层、PYTHON能力层等,每种能力可以再根据特性、版本细分,如JAVA1.8、JAVA15等等,向镜像仓库上传镜像时,分析镜像元数据,剥离镜像层信息,并同步更新镜像元数据仓库;开发基于层的拼接技术,可按照需求将若干镜像层拼接成符合要求的成品镜像,基于层的管理策略是镜像缩减、预热的基础;
[0020]3、镜像层剪裁,将镜像制作时产生的中间文件,如部署完成的安装包、临时文件删除,减少镜像层大小;
[0021]4、公共镜像层裁剪,将镜像内部的公共镜像层裁剪掉,避免相同的基础环境重复
分发;
[0022]5、业务镜像层聚合,镜像层裁剪、公共镜像层裁剪后,将剩余的镜像层合并形成业务镜像层(这些镜像层保存应用及应用直接依赖,因此可以合并),此方案对异构平台镜像快速生成具有重要意义,基于JAVA、PYTHON、SHELL等解释性语言开发的应用,采用此方案后,可以基于业务镜像层以及目标架构的公共镜像层,快速构建出目标架构的镜像。
[0023]目前,业界对上述问题的解决方案有限,现有的方案基本围绕镜像拉取加速展开,如本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于云平台的镜像裁剪及多架构镜像构建方法,其特征在于,镜像裁剪及多架构镜像构建方法包括以下步骤:S1:引入基于层的管理技术,将镜像层分为保存基础运行环境的公共镜像层、保存临时文件的文件拷贝层和保存应用的业务镜像层;S2:镜像层裁剪,镜像层生成时,通过标识并识别镜像层中的临时数据,在生成镜像时将其删除,从而减少单层镜像大小;S3:公共镜像层裁剪,通过标识并识别镜像中的公共镜像层,将公共镜像层删除从而缩减镜像大小;S4:异构镜像快速生成,扫描并标识业务镜像层,适配新架构时,根据业务镜像层属性快速基于一种架构生成另外一种架构镜像,多架构镜像只需维护一个业务镜像层,降低维护成本;S5:镜像预热,通过镜像周期预热、触发预热、预测预热等预热机制,将镜像拉取时间前移,缩减镜像启动时间,以获得良好的响应速度,从而提升分布式系统的响应速度,实现容器的快速启动。2.如权利要求1所述基于云平台的镜像裁剪及多架构镜像构建方法,其特征在于:S1中,基于层的镜像管理技术将镜像层按功能分为基础环境层、依赖层、文件拷贝层和业务层:基础镜像层:保存OS、架构相关的基础运行环境;依赖层:保存应用运行时的直接依赖,包括运行时环境、动态库等,如JAVA环境、PYTHON环境,安全类应用依赖的加解密库等;公共镜像层:基础镜像层和依赖层统称为公共镜像层,公共镜像层属于公共资源,可被多个镜像共享;文件拷贝层:该层保存的内容具有临时性,在镜像制作过程中起辅助作用,镜像制作完成后,该层的数据不再需要;业务层:保存应用自身的数据和配置。3.如权利要求1所述基于云平台的镜像裁剪及多架构镜像构建方法,其特征在于:S1中,引入镜像元数据仓库,支持基于层的镜像管理技术,镜像元数据仓库保存镜像元数据信息,包括镜像信息和镜像层信息,这些信息描述镜像的构成以及属性。4.如权利要求1所述基于云平台的镜像裁剪及多架构镜像构建方法,其特征在于:S2中,镜像层内剪裁...

【专利技术属性】
技术研发人员:廖闻剑彭艳兵曹俊亮赵智峰周帅锋王刚丁军峰樊武张百忍
申请(专利权)人:南京烽火星空通信发展有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1