一种镜像拉取的方法及其系统技术方案

技术编号:21803401 阅读:39 留言:0更新日期:2019-08-07 11:37
本发明专利技术公开了一种镜像拉取的方法及其系统,该方法应用于服务端,包括:接收请求客户端发出的镜像拉取请求;判断所述服务端的当前负载状态是否为高负载运行状态;在判断结果为是的情况下,确定第一客户端,其中,所述第一客户端配置有与所述镜像拉取请求对应的镜像;向所述请求客户端发送重定向拉取镜像消息,其中,所述重定向拉取镜像消息用于所述请求客户端从所述第一客户端拉取镜像。该系统应用于服务端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现本发明专利技术提供的镜像拉取的方法的步骤。本发明专利技术解决了私有仓库的服务的网络和处理能力瓶颈的问题,加速集群镜像的拉取。

A Method and System of Mirror Drawing

【技术实现步骤摘要】
一种镜像拉取的方法及其系统
本专利技术涉及容器化平台领域,尤其涉及一种镜像拉取的方法及其系统。
技术介绍
容器技术虚拟化技术已经成为一种被大家广泛认可的服务器资源共享方式,它可以在按需构建操作系统实例的过程当中为系统管理员提供极大的灵活性。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是一个开源的应用容器引擎,也是让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到Linux机器上,也可以实现虚拟化。容器技术出现,使得原先基于虚拟机节点部署的分布式系统也逐渐进行了容器化操作,如google的kubernetes,swarm等都实现了容器化的部署,容器技术的使用日渐广泛。运行一个容器化应用时,通常的做法是从仓库(Registry)上拉取该镜像,例如从公有仓库dockerhub上下载镜像。而对于企业内部系统而言,由于采用的往往是定制化镜像,且出于安全以及效率的角度考虑,会使用私有仓库服务进行镜像的分发。在部署较大的容器应用集群时,使用到的节点动辄成百上千个(比如一个kubernetes集群系统声称能支持2000个node),部署过程主要时间都花费在镜像的分发过程中。因此在大量节点首次部署容器应用集群以及更新镜像时,都会面临私有仓库的Registry的处理瓶颈问题,这其中包括私有仓库所在服务器的处理瓶颈,以及服务器面临的网络带宽瓶颈。在网络带宽和处理能力有限的情况下,Registry面对大量并发操作,就免不了出现排队等待拉取镜像的情形,效率比较慢。目前有一种结合了BitTorrent协议来加速镜像分发的技术,主要原理就是通过BitTorrent协议,对各个节点的镜像进行共享,实现P2P加速。由于P2P技术的原理,该技术需要将镜像文件进行分割和压缩,在集群的所有节点进行传输和加速,一定程度上会消耗网络的带宽资源。此外,由于要分割镜像文件,并需要维护每个分割文件的同步,也增加了系统的复杂度。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种镜像拉取的方法及其系统,以提高拉取镜像的效率。本专利技术解决上述技术问题所采用的技术方案如下:根据本专利技术的一个方面,提供一种镜像拉取的方法,应用于服务端,包括:接收请求客户端发出的镜像拉取请求;判断所述服务端的当前负载状态是否为高负载运行状态;在判断结果为是的情况下,确定第一客户端,其中,所述第一客户端配置有与所述镜像拉取请求对应的镜像;向所述请求客户端发送重定向拉取镜像消息,其中,所述重定向拉取镜像消息用于所述请求客户端从所述第一客户端拉取镜像。在一个可能的设计中,所述接收至少一个请求客户端发出的镜像拉取请求之后,包括:判断接收到的所述镜像拉取请求的个数是否超过预设阈值;在判断结果为是的情况下,按照预设的优先拉取原则选取一个或多个所述镜像拉取请求进行优先处理。在一个可能的设计中,所述按照预设的优先拉取原则选取多个所述镜像拉取请求进行优先处理包括:确定所述镜像拉取请求的请求客户端的所属子网;在不同的所属子网中选取所述镜像拉取请求。在一个可能的设计中,所述在不同的所属子网中选取的所述镜像拉取请求包括:若所述所属子网的个数小于或等于所述预设阈值,则在每一个不同的所属子网中选取至少一个所述镜像拉取请求;若所述所属子网的个数大于所述预设阈值,则优先在拥有较大在线客户端数量的所述所属子网中选取一个镜像拉取请求。在一个可能的设计中,所述确定第一客户端包括:判断所述请求客户端所处的子网中是否存在在线客户端,其中,所述在线客户端配置有与所述镜像拉取请求对应的镜像;在判断结果为是的情况下,确定所述在线客户端为第一客户端;在判断结果为否的情况下,确定其他子网中拥有与所述镜像拉取请求对应的镜像的客户端,并从中选取距离服务端最近的至少一个客户端作为所述第一客户端。在一个可能的设计中,所述向所述请求客户端发送重定向拉取镜像消息之前,包括:判断所述请求客户端与第一客户端之间的距离是否大于预定值;若是,则等待服务端建立镜像传输。在一个可能的设计中,所述接收请求客户端发出的镜像拉取请求包括:获取所述请求客户端的IP信息,以判断所述请求客户端的网络出口是否做了NAT映射。本专利技术还提供一种镜像拉取的系统,应用于服务端,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现本专利技术实施例提供的镜像拉取的方法的步骤。本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有镜像拉取程序,所述镜像拉取程序被处理器执行时实现本专利技术实施例提供的镜像拉取的方法的步骤。本专利技术还提供一种镜像拉取的系统,包括:服务端以及至少一个客户端;所述服务端,用于根据所述客户端发出的镜像拉取请求,向所述客户端发送重定向拉取镜像消息,或与所述客户端建立镜像传输;其中,所述重定向拉取镜像消息用于所述请求客户端从第一客户端拉取镜像,所述第一客户端配置有与所述镜像拉取请求对应的镜像。本专利技术实施例提供的镜像拉取的方法及其系统,利用各个子网的网络带宽,实现各个子网内镜像的共享传输;使用的传输协议简单,只需要单点对单点的传输协议即可,解决私有仓库(Registry)的服务的网络和处理能力瓶颈的问题。本专利技术还能根据特定集群的网络情况,优化推送镜像的优先级顺序,最大化的利用交换机网络实现加速集群镜像的拉取。附图说明图1为本专利技术实施例的应用于服务端的镜像拉取的方法的流程示意图;图2为本专利技术另一实施例的应用于服务端的镜像拉取的方法的流程示意图;图3为本专利技术另一实施例的应用于服务端的镜像拉取的方法的流程示意图;图4为本专利技术实施例的镜像拉取的系统的流程示意图;本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本专利技术所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术中,服务端和客户端都提供仓库服务,以便让容器引擎(比如Docker)都能从服务端或本地客户端的仓库拉取镜像。客户端本身也是一个镜像,需要先从服务端上拉取下来并运行客户端容器。如图1所示,本专利技术实施例提供一种镜像拉取的方法,应用于服务端,包括以下步骤:101、开始。客户端运行起来后,会连接服务端(可理解为登陆操作),发送本机节点基础信息,如本机IP等。连接成功,它们之间保持一种心跳连接,类似即使通信软件的客户端与服务端心跳机制,只占用少量资源。只要心跳不断,服务端就认为这些客户端处于在线状态,为在线客户端。102、接收至少一个请求客户端发出的镜像拉取请求。当在线客户端发出镜像拉取请求,即为请求客户端。103、判断所述服务端的当前负载状态是否为高负载运行状态,若是,则进入步骤104;若否,则进入步骤105。104、确定第一客户端,向所述请求客户端发送重定向拉取镜像消息。其中,所述第一客户端配置有与所述镜像拉取请求对应的镜像。所述重定向拉取镜像消息用于所述请求客户端从所述第一客户端拉取镜像。105、将与所述镜像拉取请求对应的镜像直接传输给所述请求客户端。此时,若服务端处于高负载运行状态,则排队等候。106、结束。本实施例中,当服务端完成一个推送任务后,会本文档来自技高网
...

【技术保护点】
1.一种镜像拉取的方法,应用于服务端,其特征在于,包括:接收请求客户端发出的镜像拉取请求;判断所述服务端的当前负载状态是否为高负载运行状态;在判断结果为是的情况下,确定第一客户端,其中,所述第一客户端配置有与所述镜像拉取请求对应的镜像;向所述请求客户端发送重定向拉取镜像消息,其中,所述重定向拉取镜像消息用于所述请求客户端从所述第一客户端拉取镜像。

【技术特征摘要】
1.一种镜像拉取的方法,应用于服务端,其特征在于,包括:接收请求客户端发出的镜像拉取请求;判断所述服务端的当前负载状态是否为高负载运行状态;在判断结果为是的情况下,确定第一客户端,其中,所述第一客户端配置有与所述镜像拉取请求对应的镜像;向所述请求客户端发送重定向拉取镜像消息,其中,所述重定向拉取镜像消息用于所述请求客户端从所述第一客户端拉取镜像。2.根据权利要求1所述镜像拉取的方法,其特征在于,所述接收至少一个请求客户端发出的镜像拉取请求之后,包括:判断接收到的所述镜像拉取请求的个数是否超过预设阈值;在判断结果为是的情况下,按照预设的优先拉取原则选取一个或多个所述镜像拉取请求进行优先处理。3.根据权利要求2所述镜像拉取的方法,其特征在于,所述按照预设的优先拉取原则选取多个所述镜像拉取请求进行优先处理包括:确定所述镜像拉取请求的请求客户端的所属子网;在不同的所属子网中选取所述镜像拉取请求。4.根据权利要求3所述镜像拉取的方法,其特征在于,所述在不同的所属子网中选取的所述镜像拉取请求包括:若所述所属子网的个数小于或等于所述预设阈值,则在每一个不同的所属子网中选取至少一个所述镜像拉取请求;若所述所属子网的个数大于所述预设阈值,则优先在拥有较大在线客户端数量的所述所属子网中选取一个镜像拉取请求。5.根据权利要求1所述镜像拉取的方法,其特征在于,所述确定第一客户端包括:判断所述请求客户端所处的子网中是否存在在线客户端,其中,所述在线客户端配置有...

【专利技术属性】
技术研发人员:李夏隆
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

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

1