一种分布式容器镜像构建调度系统及方法技术方案

技术编号:24409201 阅读:22 留言:0更新日期:2020-06-06 08:25
本发明专利技术公开了一种分布式容器镜像构建调度系统及方法,系统主要包括构建节点和管理节点,其中构建节点包括镜像构建器用于执行管理节点下发下来的构建任务;管理节点包括控制台和调度器,控制台负责获取用户所需要的开发依赖库、系统配置等相关参数并将这些参数生成任务发送至调度器;调度器用于接收控制台发送的任务,检测任务合法性并将任务发送至相应的构建节点上运行。本发明专利技术具有保证分配容器镜像任务的公平性、实现资源高效利用、更加面向用户等特性,提高了分布式系统中容器镜像构建的速度、简化了镜像构建的流程,提高了分布式系统中容器镜像的构建效率和构建节点的负载均衡。

A distributed container image construction scheduling system and method

【技术实现步骤摘要】
一种分布式容器镜像构建调度系统及方法
本专利技术属于云计算
,具体涉及一种分布式容器镜像构建调度系统及方法。
技术介绍
由于云计算的发展,将微服务部署到容器中可极大的提升资源利用率。然而随着云计算业务的多样化、复杂化,单单让软件工程师手动编写容器镜像文件调用CI/CD工具构建镜像的处理流程过于繁琐,单一节点实现容器镜像的批量构建存在性能瓶颈且不易维护,已经无法满足当前要求,尤其当大部分应用的容器镜像文件都已经被规范化的时候,就要考虑使用分布式的容器镜像构建系统来优化现有的容器镜像构建方法,以达到提升镜像构建速度、资源高效利用和简化流程的作用。云计算业务中往往有种类繁多的业务,不同的用户需要根据自己的程序依赖构建相应的容器镜像,镜像构建也需要跟进迭代,因此构建镜像任务将随着时间推移不断出现,将这些镜像构建任务送入分布式就像构建系统消化也是一个亟待解决的问题,特别是任何将这些任务合理的分配在响应的构建节点上运行从而保证构建镜像效率有待优化。
技术实现思路
针对目前云计算中容器镜像构建效率低下、流程繁琐和可靠性有待提高的问题,本专利技术提供了一种分布式容器镜像构建调度系统及方法。为实现上述技术目的,本专利技术实施例一方面提供一种分布式容器镜像构建调度系统,包括管理节点和构建节点;所述管理节点用于管理分布式容器镜像的构建任务的生成和调度;所述管理节点包括控制台和调度器;所述控制台用于获取任务参数,创建任务并送入调度器,以及将镜像构建状态反馈内容反馈给用户;所述调度器用于接收从控制台发送的任务生成任务消息;以及将任务消息发送至相应的构建节点上运行,等待并接收相应构建节点上的任务执行结果;所述构建节点用于执行管理节点下发的任务,每个构建节点包括镜像构建器;所述镜像构建器用于接收从调度器发送的任务消息并执行,以及将执行结果返回至调度器。进一步的,所述调度器为Web服务器;所述镜像构建器为gRPC服务器。进一步的,所述调度系统包括不少于3个的管理节点以及多个构建节点。进一步的,同一时刻只有一个管理节点处于工作状态,通过心跳检测技术和VIP技术进行管理节点无缝切换。本专利技术实施例另一方面还提供一种分布式容器镜像构建调度方法,包括:权利要求1至4任意一项所述的管理节点和构建节点初始化,包括:将管理节点调度器置为Web服务器阻塞监听状态,以及将构建节点镜像构建器置为gRPC服务器阻塞监听状态;权利要求1至4任意一项所述的控制台创建镜像构建任务,并通过调度器进行检测生成任务消息;确定任务消息能够发送的构建节点;从所确定的构建节点中筛选最佳工作节点;调度器将任务消息发送至最佳工作节点,并生成任务对象;最佳工作节点执行任务,并将构建状态反馈内容发送至管理节点;管理节点将构建状态反馈内容告知用户;管理节点和构建节点重新进入初始化状态。进一步的,所述将管理节点调度器置为Web服务器阻塞监听状态,包括:管理节点上启动调度器,调度器检查调度器配置文件是否存在,若存在,则读取配置文件中所有构建节点的IP地址和gRPC服务端口号并将这些数据保存至缓存中;所述调度器配置文件内容为构建节点的IP地址和gRPC服务端口号列表;调度器设置缓存中的并行线程数记为workers;同时,设置任务列表为空;调度器检查当前管理节点上用于Web和gRPC通信加密的TLS公钥和私钥是否存在,若存在,调度器调用该TLS公钥和私有开启自身内部带TLS认证的Web服务器阻塞监听,并开启控制台等待用户创建任务;若调度器检查调度器配置文件不存在或用于Web和gRPC通信加密的TLS公钥和私钥不存在,则将失败原因记录并生成消息记录到本地,将故障信息发送给运维工程师,调度器程序退出;所述将构建节点镜像构建器置为gRPC服务器阻塞监听状态包括:构建节点上启动镜像构建器,镜像构建器尝试对接当前构建节点上的容器引擎,若对接成功,则镜像构建器将构建节点缓存中的构建节点状态变量设置为真,构建节点健康变量设置为健康,镜像构建数变量设置为零;镜像构建器检测当前构建节点上用于gRPC通信加密的TLS公钥和私钥是否存在,若存在,镜像构建器调用该TLS公钥和私钥开启自身内部带TLS认证的gRPC服务器阻塞监听,等待调度器获取自身节点的信息或下发任务;若对接容器引擎失败或用于gRPC通信加密的TLS公钥和私钥不存在,则将失败原因记录并生成消息记录到本地,将故障信息发送给运维工程师,镜像构建器程序退出。进一步的,所述控制台创建镜像构建任务,并通过调度器进行检测生成任务消息,包括:管理节点上通过控制台创建任务,创建前设置构建的镜像名称、使用GPU值、使用的开发框架名称、开发框架版本、第三方依赖、异构资源值和测试模式值写入并创建任务;控制台将所述任务序列化为结构对象送入调度器;调度器检测结构对象是否合法性,包括:检测镜像名称是否为空,若为空,则生成"构建镜像名为空“的错误消息送至控制台告知用户并取消任务生成,调度器再次进入阻塞状态等待用户从控制台创建任务;若镜像名称非空,则调度器继续检测结构对象中异构资源值是否为真,若异构资源值设置为其他值或空则生成“构建异构资源值非法”的错误消息送至控制台告知用户并取消任务生成,调度器再次进入阻塞状态等待用户从控制台创建任务;若异构资源值设置为真,则继续检测结构对象中开发框架是否为空,若为空则生成“构建镜像开发框架为空”的错误消息送至控制台告知用户并取消任务生成,调度器再次进入阻塞状态等待用户从控制台创建任务;若开发框架非空则继续检测结构对象中测试模式值是否为真,若测试模式值设置为其他值或空则生成“测试模式值非法”的错误消息送至控制台告知用户并取消任务生成,调度器再次进入阻塞状态等待用户从控制台创建任务;若测试模式值设置为真,则任务检测通过,调度器将任务内容生成任务消息。进一步的,所述确定任务消息能够发送的构建节点,包括:管理节点上的调度器在缓存中创建活跃构建节点表,该表记录内容为构建节点IP和gRPC服务端口及通信状态;调度器缓存中的所有构建节点通过构建节点IP和gRPC服务端口与这些构建节点的gRPC服务测试通信,并将每个成功通信的构建节点保存至缓存中的活跃构建节点表;判断活跃构建节点表中的活跃构建节点数是否大于workers,若大于workers不作任何操作,若小于workers则调度器将workers设置为活跃构建节点数,开启多线程,并行获取活跃构建节点表中构建节点资源信息和构建节点状态信息;所述构建节点资源信息包括构建节点CPU数量、构建节点CPU主频、构建节点内存总量、构建节点内存空闲量、系统负载;所述构建节点状态信息包括构建节点状态变量、构建节点健康变量和镜像构建数变量;调度器依次判断活跃构建节点表中构建节点的状态变量是否为真,若为真不做任何操作,若为假则将该本文档来自技高网...

【技术保护点】
1.一种分布式容器镜像构建调度系统,其特征在于,包括管理节点和构建节点;/n所述管理节点用于管理分布式容器镜像的构建任务的生成和调度;所述管理节点包括控制台和调度器;/n所述控制台用于获取任务参数,创建任务并送入调度器,以及将镜像构建状态反馈内容反馈给用户;/n所述调度器用于接收从控制台发送的任务生成任务消息;以及将任务消息发送至相应的构建节点上运行,等待并接收相应构建节点上的任务执行结果;/n所述构建节点用于执行管理节点下发的任务,每个构建节点包括镜像构建器;/n所述镜像构建器用于接收从调度器发送的任务消息并执行,以及将执行结果返回至调度器。/n

【技术特征摘要】
1.一种分布式容器镜像构建调度系统,其特征在于,包括管理节点和构建节点;
所述管理节点用于管理分布式容器镜像的构建任务的生成和调度;所述管理节点包括控制台和调度器;
所述控制台用于获取任务参数,创建任务并送入调度器,以及将镜像构建状态反馈内容反馈给用户;
所述调度器用于接收从控制台发送的任务生成任务消息;以及将任务消息发送至相应的构建节点上运行,等待并接收相应构建节点上的任务执行结果;
所述构建节点用于执行管理节点下发的任务,每个构建节点包括镜像构建器;
所述镜像构建器用于接收从调度器发送的任务消息并执行,以及将执行结果返回至调度器。


2.根据权利要求1所述的一种分布式容器镜像构建调度系统,其特征在于,所述调度器为Web服务器;所述镜像构建器为gRPC服务器。


3.根据权利要求1所述的一种分布式容器镜像构建调度系统,其特征在于,所述调度系统包括不少于3个的管理节点以及多个构建节点。


4.根据权利要求3所述的一种分布式容器镜像构建调度系统,其特征在于,同一时刻只有一个管理节点处于工作状态,通过心跳检测技术和VIP技术进行管理节点无缝切换。


5.一种分布式容器镜像构建调度方法,其特征在于,包括:
权利要求1至4任意一项所述的管理节点和构建节点初始化,包括:将管理节点调度器置为Web服务器阻塞监听状态,以及将构建节点镜像构建器置为gRPC服务器阻塞监听状态;
权利要求1至4任意一项所述的控制台创建镜像构建任务,并通过调度器进行检测生成任务消息;
确定任务消息能够发送的构建节点;
从所确定的构建节点中筛选最佳工作节点;
调度器将任务消息发送至最佳工作节点,并生成任务对象;
最佳工作节点执行任务,并将构建状态反馈内容发送至管理节点;
管理节点将构建状态反馈内容告知用户;
管理节点和构建节点重新进入初始化状态。


6.根据权利要求5所述的一种分布式容器镜像构建调度方法,其特征在于,所述将管理节点调度器置为Web服务器阻塞监听状态,包括:
管理节点上启动调度器,调度器检查调度器配置文件是否存在,若存在,则读取配置文件中所有构建节点的IP地址和gRPC服务端口号并将这些数据保存至缓存中;所述调度器配置文件内容为构建节点的IP地址和gRPC服务端口号列表;
调度器设置缓存中的并行线程数记为workers;同时,设置任务列表为空;
调度器检查当前管理节点上用于Web和gRPC通信加密的TLS公钥和私钥是否存在,若存在,调度器调用该TLS公钥和私有开启自身内部带TLS认证的Web服务器阻塞监听,并开启控制台等待用户创建任务;
若调度器检查调度器配置文件不存在或用于Web和gRPC通信加密的TLS公钥和私钥不存在,则将失败原因记录并生成消息记录到本地,将故障信息发送给运维工程师,调度器程序退出;
所述将构建节点镜像构建器置为gRPC服务器阻塞监听状态包括:
构建节点上启动镜像构建器,镜像构建器尝试对接当前构建节点上的容器引擎,若对接成功,则镜像构建器将构建节点缓存中的构建节点状态变量设置为真,构建节点健康变量设置为健康,镜像构建数变量设置为零;
镜像构建器检测当前构建节点上用于gRPC通信加密的TLS公钥和私钥是否存在,若存在,镜像构建器调用该TLS公钥和私钥开启自身内部带TLS认证的gRPC服务器阻塞监听,等待调度器获取自身节点的信息或下发任务;
若对接容器引擎失败或用于gRPC通信加密的TLS公钥和私钥不存在,则将失败原因记录并生成消息记录到本地,将故障信息发送给运维工程师,镜像构建器程序退出。


7.根据权利要求5所述的一种分布式容器镜像构建调度方法,其特征在于,所述控制台创建镜像构建任务,并通过调度器进行检测生成任务消息,包括:
管理节点上通过控制台创建任务,创建前设置构建的镜像名称、使用GPU值、使用的开发框架名称、开发框架版本、第三方依赖、异构资源值和测试模式值写入并创建任务;
控制台将所述任务序列化为结构对象送入调度器;
调度器检测结构对象是否合法性,包括:
检测镜像名称是否为空,若为空,则生成"构建镜像名为空“的错误消息送至控制台告知用户并取消任务生成,调度器再次进入阻塞状态等待用户从控制台创建任务;
若镜像名称非空,则调度器继续检测结构对象中异构资源值是否为真,若异构资源值设置为其他值或空则生成“构建异构资源值非法”的错误消息送至控制台告知用户并取消任务生成,调度器再次进入阻塞状态等待用户从控制台创建任务;
若异构资源值设置为真,则继续检测结构对象中开发框架是否为空,若为空则生成“构建镜像开发框架为空”的错误消息送至控制台告知用户并取消任务生成,调度器再次进入阻塞状态等待用户从控制台创建任务;
若开发框架非空则继续检测结构对象中测试模式值是否为真,若测试模式值设置为其他值或空则生成“测试模式值非法”的错误消息送至控制台告知用户并取消任务生成,调度器再次进入阻塞状态等待用户从控制台创建任务;
若测试模式值设置为真,则任务检测通过,调度器将任务内容生成任务消息。


8.根据权利要求5所述的一种分布式容器...

【专利技术属性】
技术研发人员:张登银李俊江刘子捷朱琳程义周莹莹史朝夕
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏;32

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

1