CN115202729A - 基于容器服务的镜像生成方法、装置、设备及介质 - Google Patents
基于容器服务的镜像生成方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115202729A CN115202729A CN202210912544.XA CN202210912544A CN115202729A CN 115202729 A CN115202729 A CN 115202729A CN 202210912544 A CN202210912544 A CN 202210912544A CN 115202729 A CN115202729 A CN 115202729A
- Authority
- CN
- China
- Prior art keywords
- container
- service
- algorithm
- mirror image
- editing tool
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Abstract
本发明公开了一种基于容器服务的镜像生成方法,包括根据ingress路由代理的地址访问预先构建的AI服务;从所述AI服务中获取目标算法文件;启动容器,并启动容器中的在线编辑工具;在所述容器中基于经所述在线编辑工具编辑后的目标算法文件训练算法模型;构建所述算法模型对应的算法镜像,并将所述算法镜像推送至镜像仓库进行存储。本发明利用在线编辑工具实现算法模型的在线开发、编译和执行。基于k8s的service和ingress实现服务在线开发的代理访问,通过模块发布和服务编排对外提供AI服务能力。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种基于容器服务的镜像生成方法、装置、设备及介质。
背景技术
随着AI技术的发展,特别是以深度学习的为代表的机器学习的进步,促进了AI算法在各个行业中的应用,取得了良好的效果。以Docker和Kubernetes为代表的容器技术的发展,为资源的有效合理利用提供了途径,企业的计算资源逐渐云化。在汽车行业,随着汽车各控制器算力增强产生了海量数据,源源不断的数据为算法和模型的持续迭代提供了充足的食粮。逐渐完善的个人信息安全法规对于数据合理合规使用提出了新的要求,数据不下云,要求算法在云上进行开发和训练。当前关于容器技术和模型训练相结合的应用有很多,主要是基于Kubernetes进行资源管理、应用程序生命周期管理、多租户访问控制、GPU资源管理、多集群部署等,支撑模型训练、模型部署等应用。然而,现有技术中缺乏对算法在线开发,不能满足数据不下云,在线开发,在线训练,在线发布的需求。
发明内容
鉴于以上所述现有技术的缺点,本发明提供一种基于容器服务的镜像生成方法、装置、设备及介质,以解决上述技术问题。
本发明提供的一种基于容器服务的镜像生成方法,所述方法包括:
根据ingress路由代理的地址访问预先构建的AI服务,所述AI服务存在于容器中;
从所述AI服务中获取目标算法文件,所述目标算法文件中至少包括算法参数;
启动容器,并启动容器中的在线编辑工具,所述在线编辑工具预先挂载在所述容器中,用于对所述目标算法文件进行编辑;
在所述容器中基于经所述在线编辑工具编辑后的目标算法文件训练算法模型;
构建所述算法模型对应的算法镜像,并将所述算法镜像推送至镜像仓库进行存储。
于本发明一实施例中,预先构建AI服务的步骤,包括:
通过Kubernetes调度服务创建容器;
将所述AI服务对应的算法文件挂载到所述容器中;
将在线编辑工具挂载到所述容器中;
将所述算法文件以及所述在线编辑工具封装成AI服务,以完成AI服务的构建。
于本发明一实施例中,在构建所述算法模型对应的算法镜像的步骤中,包括:
从Git客户端中获取所述算法模型对应的代码;
将所述代码打包成算法镜像,并使用jenkins持续集成部署工具进行持续部署;其中,所述Git客户端与所述jenkins持续集成部署集成于容器中。
于本发明一实施例中,所述根据ingress路由代理的地址访问预先构建的AI服务,包括:
通过浏览器,基于ingress路由代理的地址访问预先构建的AI服务。
于本发明一实施例中,所述在线编辑工具运行在设定工作目录下,所述工作目录保存在对象存储中,所述对象存储挂载于所述容器中,同一个工作目录具有至少一个挂载对象,所述挂载对象为不同的容器。
于本发明一实施例中,所述方法还包括:
在浏览器关闭时,触发代码的变动检查,若所述代码不存在变动,则关闭浏览器;
若所述代码存在变动,则检查所述代码所在的项目是否是Git项目,若是,则生成第一提示,所述第一提示用于提示用户提新的交代码;
在代码提交完成后,生成第二提示,所述第二提示用于提示用户是否推送算法进行模型训练;
若用户根据第二提示生成的反馈信息为推送算法进行模型训练,则选择对应在的数据集,推送训练任务,若用户根据第二提示生成的反馈信息为不推送算法进行模型训练,则结束操作。
于本发明一实施例中,所述在线编辑工具至少包括code sever、JupyterNotebook中的一种。
本发明提供的一种基于容器服务的镜像生成装置,所述装置包括:
访问模块,用于根据ingress路由代理的地址访问预先构建的AI服务,所述AI服务存在于容器中;
获取模块,用于从所述AI服务中获取目标算法文件,所述目标算法文件中至少包括算法参数;
启动模块,用于启动容器,并启动容器中的在线编辑工具,所述在线编辑工具预先挂载在所述容器中,用于对所述目标算法文件进行编辑;
训练模块,用于在所述容器中基于经所述在线编辑工具编辑后的目标算法文件训练算法模型;
镜像构建模块,用于构建所述算法模型对应的算法镜像,并将所述算法镜像推送至镜像仓库进行存储。
本发明提供的一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述的基于容器服务的镜像生成方法的步骤。
本发明提供的一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行上述基于容器服务的镜像生成方法的步骤。
本发明的有益效果:本发明中的一种基于容器服务的镜像生成方法,包括:根据ingress路由代理的地址访问预先构建的AI服务,所述AI服务存在于容器中;从所述AI服务中获取目标算法文件,所述目标算法文件中至少包括算法参数;启动容器,并启动容器中的在线编辑工具,所述在线编辑工具预先挂载在所述容器中,用于对所述目标算法文件进行编辑;在所述容器中基于经所述在线编辑工具编辑后的目标算法文件训练算法模型;构建所述算法模型对应的算法镜像,并将所述算法镜像推送至镜像仓库进行存储。本发明通过将在线编辑工具内置于容器环境内,利用对象存储提供的目录空间作为用户的工作目录,实现了用户数据在不同节点间的同步,实现用户体验的统一;将容器环境同GitLab和Jenkins打通,将算法的开发、模型训练和发布集成在了一起,用户在分配的容器环境中可以方便的实现算法的开发、模型的训练以及镜像的生成和模型发布成AI服务的操作,实现一个在线的集成开发环境。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本申请的一示例性实施例示出的基于容器服务的镜像生成方法的实施环境示意图;
图2是本申请的一示例性实施例示出的基于容器服务的镜像生成方法的流程图;
图3为本申请的一示例性实施例示出的预先构建AI服务的步骤的流程图;
图4为本申请的一示例性实施例示出的步骤S250的流程图;
图5是本申请的一示例性实施例示出的基于容器服务的AI开发装置的框图;
图6示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下将参照附图和优选实施例来说明本发明的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
图1是本申请一种示例性基于容器服务的镜像生成方法实施环境的示意图。请参阅图1,该实施环境中包括终端设备101和服务器102,终端设备101和服务器102之间通过有线或者无线网络进行通信。
应该理解,图1中的终端设备101和服务器102的数目仅仅是示意性的。根据实际需要,可以具有任意数目的终端设备101和服务器102。
其中,终端设备101对应客户端,其可以是任意具有用户输入接口的电子设备,包括但不限于智能手机、平板、笔记本电脑、计算机、车载电脑等等,其中,用户输入接口包括但不限于触摸屏、键盘、物理按键、音频拾取装置等。
其中,服务器102对应服务端,其可以是提供各种服务的服务器,其可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器,本处不对此进行限制。
终端设备101可以通过3G(第三代的移动信息技术)、4G(第四代的移动信息技术)、5G(第五代的移动信息技术)等无线网络与服务端102进行通信,本处也不对此进行限制。
本发明是为了实现AI服务的在线开发、编译和训练,实现对硬件资源的管理和调度;实现算法模型等代码的在线编辑、查看、调试和编译等;实现对具体业务流程的调度;实现对文件的新增、删除、复制、目录创建、目录删除和权限等管理;相关的AI算法计算框架需要进行集成,以及对计算框架的分布式计算的支持。需要实现模型的发布,通过模型和服务编排对外提供AI服务能力。
基于以上目的,本发明基于私有云,采用容器化技术,实现对CPU、GPU等计算资源的合理利用,提高资源使用率。同时利用容器目录挂载方式实现个人数据的挂载。利用CodeServer和Jupyter Notebook实现算法模型的在线开发、编译和执行。基于k8s的service和ingress实现服务在线开发的代理访问。通过模块发布和服务编排对外提供AI服务能力。
本发明主要是通过容器管理、镜像管理、对象存储、在线文本编辑、算法计算框架来实现AI算法模型的在线开发、编译和训练,并将生成的模型进行发布。通过容器集群实现计算资源的管理和调度。集群依托Kubernetes来实现CPU、GPU、网络等硬件资源的编排和调度,为系统的各应用提供运行环境。通过对象存储实现文件在容器中的挂载和访问。相关的数据管理模块根据对象存储提供的API接口实现对文件的新增、拷贝、复制、目录的创建和删除等操作实现对文件的具体业务逻辑的管理。在镜像管理中集成基础AI计算框架,包括Pytorch、Tensorflow、Mxnet等,生成不同的基础镜像供AI开发使用。
本申请的实施例分别提出一种基于容器服务的镜像生成方法、一种基于容器服务的镜像生成装置、一种电子设备、一种计算机可读存储介质,以下将对这些实施例进行详细描述。
请参阅图2,图2是本申请的一示例性实施例示出的一种基于容器服务的镜像生成方法的流程图。该方法可以应用于图1所示的实施环境,并由该实施环境中的终端设备101具体执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
请参阅图2,图2为本申请一示例性的一种基于容器服务的镜像生成方法的流程图,该基于容器服务的镜像生成方法至少包括步骤S210至步骤S250,详细介绍如下:
步骤S210,根据ingress路由代理的地址访问预先构建的AI服务,所述AI服务存在于容器中;
步骤S220,从所述AI服务中获取目标算法文件,所述目标算法文件中至少包括算法参数;
步骤S230,启动容器,并启动容器中的在线编辑工具,所述在线编辑工具预先挂载在所述容器中,用于对所述目标算法文件进行编辑;
步骤S240,在所述容器中基于经所述在线编辑工具编辑后的目标算法文件训练算法模型;
步骤S250,构建所述算法模型对应的算法镜像,并将所述算法镜像推送至镜像仓库进行存储。
本发明通过将在线编辑工具内置于容器环境内,利用对象存储提供的目录空间作为用户的工作目录,实现了用户数据在不同节点间的同步,实现用户体验的统一;将容器环境同GitLab和Jenkins打通,将算法的开发、模型训练和发布集成在了一起,用户在分配的容器环境中可以方便的实现算法的开发、模型的训练以及镜像的生成和模型发布成AI服务的操作,实现一个在线的集成开发环境。
以下对各个步骤进行详细说明。
在步骤S210中,根据ingress路由代理的地址访问预先构建的AI服务,所述AI服务存在于容器中;
需要说明的是,AI服务是预先构建的,并且在构建完成AI服务时,给AI服务分配了一个地址。用户想要访问AI服务时,通过ingress路由代理的为AI服务分配的地址来访问AI服务。
具体地,在访问AI服务时,通过浏览器,基于ingress路由代理的地址访问预先构建的AI服务。
请参阅图3,图3为本申请一示例性的预先构建AI服务的步骤,包括:
步骤S310,通过Kubernetes调度服务创建容器;
kubernetes,简称k8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。Kubernetes是一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
需要说明的是,创建的容器具备相应的CPU(一般指中央处理器,centralprocessing unit,简称CPU))、GPU(一般指图形处理器,graphics processing unit,缩写:GPU)、内存资源等。
步骤S320,将所述AI服务对应的算法文件挂载到所述容器中;
具体地,算法文件可以包括数据、算法和模型,数据可以包括多种不同的数据,可以利用多种不同的数据、结合多个不同的算法进行训练,得到多种不同的模型。在一实施例中,在容器中通过VolumeMount的方式挂载算法文件
步骤S330,将在线编辑工具挂载到所述容器中;
需要说明的是,在线编辑工具,用于对算法文件进行编辑。所述在线编辑工具至少包括code sever、Jupyter Notebook中的一种。
在线编辑工具code sever和Jupyter Notebook也通过挂载的方式,挂载于容器中。在容器启动时按需启动在线编辑工具,code server或Jupyter Notebook,运行在指定的端口。code server的目标是为开发者构建一个便捷统一的开发环境,让开发者能从任意设备、任意位置通过浏览器来进行代码的编写。从而免去了常规的IDE开发流程中的环境搭建的问题。
Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。
需要说明的是,本发明通过k8s的endpoint,service和ingress,基于pod ip实现在线编辑工具code server或者Jupyter Notebook的访问代理,避免k8s集群IP资源直接暴露,提高集群的安全性,用户通过ingress代理的地址和路径资源访问在线的AI服务。创建完成之后,用户可以通过浏览器对文件进行在线编辑。
步骤S340,将所述算法文件以及所述在线编辑工具封装成AI服务,以完成AI服务的构建。
至此,通过步骤S310至步骤S340,完成了AI服务的构建。
在步骤S220中,从所述AI服务中获取目标算法文件,所述目标算法文件中至少包括算法参数;
由于模型的生成需要相应的数据、算法,因此,需要从AI服务中获取目标算法文件,通过目标算法文件中的参数来生成模型。
在步骤S230中,启动容器,并启动容器中的在线编辑工具,所述在线编辑工具预先挂载在所述容器中,用于对所述目标算法文件进行编辑;
在步骤S240中,在所述容器中基于经所述在线编辑工具编辑后的目标算法文件训练算法模型;
在步骤S250中,构建所述算法模型对应的算法镜像,并将所述算法镜像推送至镜像仓库进行存储。
请参阅图4,图4为本申请中步骤S250的一示例性具体实施方式的流程图,具体地,在构建所述算法模型对应的算法镜像的步骤中,包括:
步骤S410,从Git客户端中获取所述算法模型对应的代码;
步骤S420,将所述代码打包成算法镜像,并使用jenkins持续集成部署工具进行持续部署;其中,所述Git客户端与所述jenkins持续集成部署集成于容器中。
需要说明是,在容器创建启动过程中,通过初始化命令,将Git客户端集成到容器环境中,支持从k8s secret和ConfigMap中获取用户Git账号密码,支持从指定Gitlab目录自动拉取算法文件和配置。通过在线编辑工具code server实现向容器进行算法提交和训练提交操作。在开发完成后,通过点击在线编辑工具code server的菜单向容器进行算法文件提交。
于本发明一实施例中,所述在线编辑工具运行在设定工作目录下,所述工作目录保存在对象存储中,所述对象存储挂载于所述容器中,同一个工作目录具有至少一个挂载对象,所述挂载对象为不同的容器。
具体地,在线编辑工具是运行在设定的工作目录下的,因此,在线编辑工具对算法文件或其他数据进行编辑产生的数据,或某些指令在在线编辑工具中运行产生的数据都会存储在这个工作目录下。需要说明的是,同一个工作目录可以挂载到不同的容器中,只有其中一个容器中的工作目录发生相应的改变,其他容器中的工作目录也会发生相应的改变,与其中一个容器中的工作目录保持一致,这种通过容器磁盘挂载的方式,将用户的工作目录保存于对象存储文件系统中,实现用户数据在容器间的挂载和数据同步。而且若一个工作目录记录下数据后,在再一次访问该AI服务时,工作目录下的数据不会发生改变。
于本发明一实施例中,所述方法还包括:
在浏览器关闭时,触发代码的变动检查,若所述代码不存在变动,则关闭浏览器;
若所述代码存在变动,则检查所述代码所在的项目是否是Git项目,若是,则生成第一提示,所述第一提示用于提示用户提新的交代码;
在代码提交完成后,生成第二提示,所述第二提示用于提示用户是否推送算法进行模型训练;
若用户根据第二提示生成的反馈信息为推送算法进行模型训练,则选择对应在的数据集,推送训练任务,若用户根据第二提示生成的反馈信息为不推送算法进行模型训练,则结束操作。
模型训练完成后,通过与Jenkins和GitLab进行集成,支持自动构建成镜像,推送到镜像中心。
本发明通过将在线编辑工具内置于容器环境内,利用对象存储提供的目录空间作为用户的工作目录,实现了用户数据在不同节点间的同步,实现用户体验的统一;将容器环境同GitLab和Jenkins打通,将算法的开发、模型训练和发布集成在了一起,用户在分配的容器环境中可以方便的实现算法的开发、模型的训练以及镜像的生成和模型发布成AI服务的操作,实现一个在线的集成开发环境。
本发明通过将code server和Jupyter Notebook等在线编辑工具集成到容器环境中,将对象存储挂载提供的磁盘空间用来保存用户的个性化使用数据,实现用户数据在不同容器节点间的数据同步,用户不论在什么节点环境都可以有统一的开发体验;在容器中通过对Gitlab,Jenkins,镜像服务和调度服务的集成,实现自动的代码更新和自动提交,通过code server中的插件实现一键推送训练,一键发布AI服务。
图5是本申请的一示例性实施例示出的基于容器服务的镜像生成的框图。该装置可以应用于图1所示的实施环境,并具体配置在终端设备中。该装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
如图5所示,本申请提供一种基于容器服务的镜像生成装置,该装置包括:
本发明提供的一种基于容器服务的镜像生成装置,所述装置包括:
访问模块510,用于根据ingress路由代理的地址访问预先构建的AI服务,所述AI服务存在于容器中;
获取模块520,用于从所述AI服务中获取目标算法文件,所述目标算法文件中至少包括算法参数;
启动模块530,用于启动容器,并启动容器中的在线编辑工具,所述在线编辑工具预先挂载在所述容器中,用于对所述目标算法文件进行编辑;
训练模块540,用于在所述容器中基于经所述在线编辑工具编辑后的目标算法文件训练算法模型;
镜像构建模块550,用于构建所述算法模型对应的算法镜像,并将所述算法镜像推送至镜像仓库进行存储。
需要说明的是,上述实施例所提供的基于容器服务的镜像生成装置与上述实施例所提供的基于容器服务的镜像生成方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的基于容器服务的镜像生成装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的基于容器服务的镜像生成方法。
图6示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图6示出的电子设备的计算机系统600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(Central Processing Unit,CPU)601,其可以根据存储在只读存储器(Read-Only Memory,ROM)602中的程序或者从储存部分608加载到随机访问存储器(Random Access Memory,RAM)603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 603中,还存储有系统操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(Input/Output,I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分607;包括硬盘等的储存部分708;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分607。通信部分607经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入储存部分608。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图2所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机的处理器执行时,使计算机执行如前所述的基于容器服务的镜像生成方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的基于容器服务的镜像生成方法。
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种基于容器服务的镜像生成方法,其特征在于,所述方法包括:
根据ingress路由代理的地址访问预先构建的AI服务,所述AI服务存在于容器中;
从所述AI服务中获取目标算法文件,所述目标算法文件中至少包括算法参数;
启动容器,并启动容器中的在线编辑工具,所述在线编辑工具预先挂载在所述容器中,用于对所述目标算法文件进行编辑;
在所述容器中基于经所述在线编辑工具编辑后的目标算法文件训练算法模型;
构建所述算法模型对应的算法镜像,并将所述算法镜像推送至镜像仓库进行存储。
2.根据权利要求1所述的基于容器服务的镜像生成方法,其特征在于,预先构建AI服务的步骤,包括:
通过Kubernetes调度服务创建容器;
将所述AI服务对应的算法文件挂载到所述容器中;
将在线编辑工具挂载到所述容器中;
将所述算法文件以及所述在线编辑工具封装成AI服务,以完成AI服务的构建。
3.根据权利要求1所述的基于容器服务的镜像生成方法,其特征在于,在构建所述算法模型对应的算法镜像的步骤中,包括:
从Git客户端中获取所述算法模型对应的代码;
将所述代码打包成算法镜像,并使用jenkins持续集成部署工具进行持续部署;其中,所述Git客户端与所述jenkins持续集成部署集成于容器中。
4.根据权利要求3所述的基于容器服务的镜像生成方法,其特征在于,所述根据ingress路由代理的地址访问预先构建的AI服务,包括:
通过浏览器,基于ingress路由代理的地址访问预先构建的AI服务。
5.根据权利要求1或2所述的基于容器服务的镜像生成方法,其特征在于,所述在线编辑工具运行在设定工作目录下,所述工作目录保存在对象存储中,所述对象存储挂载于所述容器中,同一个工作目录具有至少一个挂载对象,所述挂载对象为不同的容器。
6.根据权利要求4所述的基于容器服务的镜像生成方法,其特征在于,所述方法还包括:
在浏览器关闭时,触发代码的变动检查,若所述代码不存在变动,则关闭浏览器;
若所述代码存在变动,则检查所述代码所在的项目是否是Git项目,若是,则生成第一提示,所述第一提示用于提示用户提新的交代码;
在代码提交完成后,生成第二提示,所述第二提示用于提示用户是否推送算法进行模型训练;
若用户根据第二提示生成的反馈信息为推送算法进行模型训练,则选择对应在的数据集,推送训练任务,若用户根据第二提示生成的反馈信息为不推送算法进行模型训练,则结束操作。
7.根据权利要求5所述的基于容器服务的镜像生成方法,其特征在于,所述在线编辑工具至少包括code sever、Jupyter Notebook中的一种。
8.一种基于容器服务的镜像生成装置,其特征在于,所述装置包括:
访问模块,用于根据ingress路由代理的地址访问预先构建的AI服务,所述AI服务存在于容器中;
获取模块,用于从所述AI服务中获取目标算法文件,所述目标算法文件中至少包括算法参数;
启动模块,用于启动容器,并启动容器中的在线编辑工具,所述在线编辑工具预先挂载在所述容器中,用于对所述目标算法文件进行编辑;
训练模块,用于在所述容器中基于经所述在线编辑工具编辑后的目标算法文件训练算法模型;
镜像构建模块,用于构建所述算法模型对应的算法镜像,并将所述算法镜像推送至镜像仓库进行存储。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至7中任一项所述的基于容器服务的镜像生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行权利要求1至7中任一项所述的基于容器服务的镜像生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210912544.XA CN115202729A (zh) | 2022-07-30 | 2022-07-30 | 基于容器服务的镜像生成方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210912544.XA CN115202729A (zh) | 2022-07-30 | 2022-07-30 | 基于容器服务的镜像生成方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115202729A true CN115202729A (zh) | 2022-10-18 |
Family
ID=83585150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210912544.XA Pending CN115202729A (zh) | 2022-07-30 | 2022-07-30 | 基于容器服务的镜像生成方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115202729A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116258622A (zh) * | 2023-02-16 | 2023-06-13 | 青软创新科技集团股份有限公司 | 一种基于容器的gpu分配方法、装置、电子设备和介质 |
CN116301950A (zh) * | 2023-05-15 | 2023-06-23 | 北京中诺链捷数字科技有限公司 | Docker镜像生成方法、装置、设备和存储介质 |
-
2022
- 2022-07-30 CN CN202210912544.XA patent/CN115202729A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116258622A (zh) * | 2023-02-16 | 2023-06-13 | 青软创新科技集团股份有限公司 | 一种基于容器的gpu分配方法、装置、电子设备和介质 |
CN116301950A (zh) * | 2023-05-15 | 2023-06-23 | 北京中诺链捷数字科技有限公司 | Docker镜像生成方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10673932B2 (en) | System and method for abstraction of objects for cross virtual universe deployment | |
CN111901294A (zh) | 一种构建在线机器学习项目的方法及机器学习系统 | |
US10547682B2 (en) | Dynamically scaling application components using microservices | |
CN115202729A (zh) | 基于容器服务的镜像生成方法、装置、设备及介质 | |
US11797273B2 (en) | System and method for enhancing component based development models with auto-wiring | |
US20140081901A1 (en) | Sharing modeling data between plug-in applications | |
WO2022062888A1 (zh) | 一种文档编辑方法、装置、计算机设备和存储介质 | |
CN108351766B (zh) | 从移动设备创建和修改应用 | |
WO2020215752A1 (zh) | 图计算方法及装置 | |
CN113742014A (zh) | 界面渲染方法、装置、电子设备及存储介质 | |
Miao et al. | A Web 2.0‐based science gateway for massive remote sensing image processing | |
TW201725542A (zh) | 表單管理系統及方法 | |
CN109445966A (zh) | 事件处理方法、装置、介质和计算设备 | |
CN116415321A (zh) | 一种云端cad处理系统及其构建方法 | |
US20180074663A1 (en) | Dynamic process model palette | |
CN113760292A (zh) | 开发应用程序的方法、装置、电子设备和存储介质 | |
US20240111832A1 (en) | Solver execution service management | |
US20240111831A1 (en) | Multi-tenant solver execution service | |
US20240112067A1 (en) | Managed solver execution using different solver types | |
US20180341717A1 (en) | Providing instant preview of cloud based file | |
Chen et al. | Application of web services for structural engineering systems | |
WO2024073536A1 (en) | Multi-tenant solver execution service | |
CN117131302A (zh) | 一种业务页面生成方法和装置 | |
CN115145555A (zh) | 数据处理方法和装置 | |
TWI609272B (zh) | 終端裝置及其終端作業系統與雲端裝置及其雲端作業系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |