基于亲和性调整Docker组件部署的方法和相关设备技术

技术编号:21453643 阅读:22 留言:0更新日期:2019-06-26 04:41
本申请提供一种基于亲和性调整Docker组件部署的方法、装置、计算机设备和可读存储介质,涉及分布式部署技术领域,方法包括:根据预设频率,获取预设频率对应时间段内各Docker组件间的运行信息和运行占用信息;解析各组件间的运行信息和各组件的运行占用信息,得到亲和关系;根据各亲和关系生成组件频繁项集;根据各亲和关系和组件频繁项集,调整各组件在各主机群的部署。本申请通过根据预设频率监控系统中各Docker组件的运行信息、运行占用信息,自动解析得到各组件间的亲和关系,再根据优先级和组件间的亲和关系,调整各组件在各主机群上的部署,使得具有较高亲和性的组件可以部署在相同的地域的主机群上,有利于数据通信传输和执行效率。

【技术实现步骤摘要】
基于亲和性调整Docker组件部署的方法和相关设备
本申请涉及分布式部署
,特别涉及一种基于亲和性调整Docker组件部署的方法和相关设备。
技术介绍
在大型的金融系统中,常常使用Docker容器来部署微服务的分布式系统。分布式系统中常常涉及到十几个,甚至是几十个组件,各组件设置在Docker容器中,基于Docker容器来运行分布式系统。各Docker组件的运行需要高效的交互以及合理的资源利用。因此,需要解析出各组件间的亲和关系,以便用于管理哪些Docker组件部署在一起,哪些Docker组件在部署时需要相互隔离。其中,亲和关系是指组件间的亲和性的关系,亲和性用以表现组件间的内在联系是否密切,比如根据组件与组件间运行时的相互调用和资源共享等情况是否频繁,从而判断组件间的亲和性。现有用户通过k8s(Kubernetes)这一内部容器管理系统来实现根据亲和关系对Docker组件的部署。但是,通过k8s进行Docker组件部署时,各组件的亲和关系需要用户通过手动设置非常详细的标签和配置,然后k8s才能根据各组件的标签和配置进行组件间亲和关系的确定。并且,配置和标签一旦确定后,组件间的亲和关系将不能被调整,除非对系统进行重启,才能再次完成组件的部署。
技术实现思路
本申请的主要目的为提供一种基于亲和性调整Docker组件部署的方法和相关设备,旨在解决现有Docker组件间的亲和关系需要手动设置以及Docker组件的部署不具有即时性的弊端。为实现上述目的,本申请提供了一种基于亲和性调整Docker组件部署的方法,所述Docker组件部署于主机群中,所述主机群为设置在同一地区的所有所述主机形成的集群,所述方法包括:根据预设频率,获取所述预设频率对应的时间段内的各所述Docker组件间的运行信息以及各所述Docker组件分别对应的运行占用信息,其中,所述运行信息为各所述Docker组件间的调用关系信息和资源共享信息,所述调用关系信息为组件与组件间相互对应的调用关系和调用次数,所述资源共享信息为组件与组件间在运行时共同调用的资源的对应信息;解析各所述Docker组件间的运行信息和各所述Docker组件的运行占用信息,得到各所述Docker组件间的亲和关系;调用Apriori算法解析各所述Docker组件间的亲和关系,生成组件频繁项集,其中,所述组件频繁项集为包含各所述Docker组件间的亲和关系的集合;根据各所述Docker组件间的亲和关系和所述组件频繁项集,调整各所述Docker组件在各主机群上的部署。本申请还提供了一种基于亲和性调整Docker组件部署的装置,所述Docker组件部署于主机群中,所述主机群为设置在同一地区的所有所述主机形成的集群,所述装置包括:获取模块,用于根据预设频率,获取所述预设频率对应的时间段内的各所述Docker组件间的运行信息以及各所述Docker组件分别对应的运行占用信息,其中,所述运行信息为各所述Docker组件间的调用关系信息和资源共享信息,所述调用关系信息为组件与组件间相互对应的调用关系和调用次数,所述资源共享信息为组件与组件间在运行时共同调用的资源的对应信息;解析模块,用于解析各所述Docker组件间的运行信息和各所述Docker组件的运行占用信息,得到各所述Docker组件间的亲和关系;第一生成模块,用于调用Apriori算法解析各所述Docker组件间的亲和关系,生成组件频繁项集,其中,所述组件频繁项集为包含各所述Docker组件间的亲和关系的集合;调整模块,用于根据各所述Docker组件间的亲和关系和所述组件频繁项集,调整各所述Docker组件在各主机群上的部署。本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。本申请中提供的一种基于亲和性调整Docker组件部署的方法、装置和计算机设备,通过根据预设频率监控系统中各Docker组件的运行信息和运行占用信息,从而自动解析得到各组件间的亲和关系。再根据预设的优先级和组件间的亲和关系,动态调整各组件在各不同地区的主机群上的部署,从而使得具有较高亲和性的组件可以部署在相同的地域的主机群上,有利于数据通信传输和执行效率。附图说明图1是本申请一实施例中亲和性调整Docker组件部署的方法步骤示意图;图2是本申请一实施例中亲和性调整Docker组件部署的装置整体结构框图;图3是本申请一实施例的计算机设备的结构示意框图。本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。参照图1,本申请一实施例中提供了一种基于亲和性调整Docker组件部署的方法,所述Docker组件部署于主机群中,所述主机群为设置在同一地区的所有所述主机形成的集群,所述方法包括:S1:根据预设频率,获取所述预设频率对应的时间段内的各所述Docker组件间的运行信息以及各所述Docker组件分别对应的运行占用信息,其中,所述运行信息为各所述Docker组件间的调用关系信息和资源共享信息,所述调用关系信息为组件与组件间相互对应的调用关系和调用次数,所述资源共享信息为组件与组件间在运行时共同调用的资源的对应信息;S2:解析各所述Docker组件间的运行信息和各所述Docker组件的运行占用信息,得到各所述Docker组件间的亲和关系;S3:调用Apriori算法解析各所述Docker组件间的亲和关系,生成组件频繁项集,其中,所述组件频繁项集为包含各所述Docker组件间的亲和关系的集合;S4:根据各所述Docker组件间的亲和关系和所述组件频繁项集,调整各所述Docker组件在各主机群上的部署。本实施例中,各主机群中的监控服务实时监控docker容器中各docker组件间的运行信息和各docker组件分别对应的运行占用信息。其中,运行信息包括各docker组件间的调用关系信息和资源共享信息;调用关系信息包括各docker组件间相互对应的调用关系和调用次数,由于docker容器组件,即docker组件中的服务在相互调用时,需要将调用请求先发送到APIGateway组件,由APIGateway组件负责将调用请求转发到目的端组件的服务,因此调整系统可以通过监控APIGateway组件中调用请求的转发情况,得到各调用请求对应的发起端组件和目的端组件,从而得到各组件间的相互对应的调用关系,并且通过统计各具有调用关系的调用请求的转发数量,得到具有调用关系的两个组件对应的调用次数;资源共享信息为组件与组件间在运行时共同调用的资源的信息,调整系统通过网络监控可以获取docker容器组件中服务访问资源,并根据访问的资源的请求端得到具有资源共享的情况的两个组件,即组件与组件间在运行时公共调用的资源的对应信息;运行占用信息包括组件服务在运行时的CPU占用率和内存占用量,调整系统通过do本文档来自技高网...

【技术保护点】
1.一种基于亲和性调整Docker组件部署的方法,所述Docker组件部署于主机群中,所述主机群为设置在同一地区的所有所述主机形成的集群,其特征在于,所述方法包括:根据预设频率,获取所述预设频率对应的时间段内的各所述Docker组件间的运行信息以及各所述Docker组件分别对应的运行占用信息,其中,所述运行信息为各所述Docker组件间的调用关系信息和资源共享信息,所述调用关系信息为组件与组件间相互对应的调用关系和调用次数,所述资源共享信息为组件与组件间在运行时共同调用的资源的对应信息;解析各所述Docker组件间的运行信息和各所述Docker组件的运行占用信息,得到各所述Docker组件间的亲和关系;调用Apriori算法解析各所述Docker组件间的亲和关系,生成组件频繁项集,其中,所述组件频繁项集为包含各所述Docker组件间的亲和关系的集合;根据各所述Docker组件间的亲和关系和所述组件频繁项集,调整各所述Docker组件在各主机群上的部署。

【技术特征摘要】
1.一种基于亲和性调整Docker组件部署的方法,所述Docker组件部署于主机群中,所述主机群为设置在同一地区的所有所述主机形成的集群,其特征在于,所述方法包括:根据预设频率,获取所述预设频率对应的时间段内的各所述Docker组件间的运行信息以及各所述Docker组件分别对应的运行占用信息,其中,所述运行信息为各所述Docker组件间的调用关系信息和资源共享信息,所述调用关系信息为组件与组件间相互对应的调用关系和调用次数,所述资源共享信息为组件与组件间在运行时共同调用的资源的对应信息;解析各所述Docker组件间的运行信息和各所述Docker组件的运行占用信息,得到各所述Docker组件间的亲和关系;调用Apriori算法解析各所述Docker组件间的亲和关系,生成组件频繁项集,其中,所述组件频繁项集为包含各所述Docker组件间的亲和关系的集合;根据各所述Docker组件间的亲和关系和所述组件频繁项集,调整各所述Docker组件在各主机群上的部署。2.根据权利要求1所述的基于亲和性调整Docker组件部署的方法,其特征在于,所述运行占用信息包括CPU占用率和内存占用量,所述解析各所述Docker组件间的运行信息和各所述Docker组件的运行占用信息,得到各所述Docker组件间的亲和关系的步骤,包括:根据各所述Docker组件间的调用次数和所述预设频率对应的时间段,计算得到各Docker组件间的调用频率;将各所述Docker组件间的调用频率、各所述Docker组件间的资源共享信息和各所述Docker组件的运行占用信息输入预先构建的亲和关系库中,匹配得到各所述Docker组件间的亲和关系,其中,所述亲和关系库中存储有组件间的调用频率、组件间的资源共享信息、组件的运行占用信息与亲和关系映射关系表。3.根据权利要求1所述的基于亲和性调整Docker组件部署的方法,其特征在于,所述Docker组件间的亲和关系包括两个Docker组件对应的亲和信息,所述调用Apriori算法解析各所述Docker组件间的亲和关系,生成组件频繁项集的步骤,包括:根据各所述Docker组件间的亲和关系,从各所述Docker组件中筛选得到与其他Docker组件具有确定的亲和关系的各个第一组件;根据各所述第一组件以及各所述Docker组件间的亲和关系,生成各所述第一组件间的亲和关系对应的亲和性集;根据各所述亲和性集,统计得到各所述第一组件的出现次数以及各所述第一组件对应的各亲和信息对应的出现次数;根据各所述第一组件、各所述第一组件的出现次数以及各所述第一组件的各亲和信息对应的出现次数,生成所述组件频繁项集。4.根据权利要求3所述的基于亲和性调整Docker组件部署的方法,其特征在于,所述亲和信息包括亲和、较亲和、违亲和以及反亲和,所述根据各所述Docker组件间的亲和关系和所述组件频繁项集,调整各所述Docker组件在各主机群上的部署的步骤,包括:根据预先设定的优先级,从所述组件频繁项集中筛选出优先级第一的第一组件,并将所述优先级第一的第一组件部署在第一主机群,所述第一主机群为各所述主机群中的任一主机群;根据预先设定的优先级,从所述组件频繁项集中筛选出优先级第二的第一组件,并判断所述优先级第二的第一组件和所述优先级第一的第一组件之间的亲和关系是否符合预设条件,以完成预设条件的判断动作,其中,所述预设条件为组件之间的亲和关系为亲和或较亲和;若符合,则将所述优先级第二的第一组件部署在所述第一主机群;若不符合,则将优先级第二的第一组件部署在第二主机群,以完成部署组件动作,其中,所述第二主机群为各所述主机群中除所述第一主机群之外的任一主机群;依次按照优先级降序从所述组件频繁项集中...

【专利技术属性】
技术研发人员:赵骏
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1