一种基于泛容计算架构的集群调度方法技术

技术编号:35819887 阅读:20 留言:0更新日期:2022-12-03 13:44
本发明专利技术公开了一种基于泛容计算架构的集群调度方法,可以根据泛容计算架构中容器的特征标签进行调度,每一个标签都代表了每个容器主要负责的不同功能,例如计算功能、存储功能、网络功能等,依据标签的不同,将不同的容器调度到拥有不同资源优势的节点上,如果遇到两个或多个容器之间频繁协同工作的,调度算法会将它们调度到同一个节点上,降低因为网络的使用而带来的额外开销。主要区别于其他调度算法的方面在于,该调度算法优先根据Docker容器的特性进行调度,而不是节点的特征,尽量使每一个容器都能运行在拥有其所负责功能资源更好的节点上。节点上。节点上。

【技术实现步骤摘要】
一种基于泛容计算架构的集群调度方法


[0001]本专利技术涉及云计算
,具体为一种基于泛容计算架构的集群调度方法。

技术介绍

[0002]近年来云计算技术渐渐走进了人们的生活,云计算是分布式计算技术的一种,它将现有的众多技术如,存储,计算,虚拟化等,整合起来通过网络云,将用户所需要运行的巨大的数据计算处理程序分解成无数个小程序,再交由统一的计算中心进行计算和分析后,再将结果返回给用户。云计算技术为用户提供了可以按需付费的服务,用户可根据自身的需求购买服务;广泛的网络接入,只要在有网络的情况下就可以使用;采用了资源池化技术,可以随意加减资源屏蔽硬件的差异性;快速的弹性伸缩,可快速根据需求增减服务。
[0003]泛容计算架构是一种在云计算基础上进行改善的基于Docker的细粒度、松耦合的新型分布式云计算架构,它建立了面向Docker的,随用随生,满足内生安全的云计算架构。相比于传统云计算架构主要的不同点在于,将传统云计算中的多进程协同工作,变成了多Docker间的协同工作,实现了细致的应用颗粒度划分并有效的解耦了不同功能的Docker之间的关联,实现了一种松耦合的服务架构,另一方面在保障数据信息的安全性方面也会有不错的效果。
[0004]Kubernetes是Google于2014年开源的一个容器集群管理平台,其中不仅可以方便,高效的管理编排容器,还提供了对容器各项指标的监控插件,集群的节点有两种角色类型,分别是管理节点以及工作节点,顾名思义管理节点负责整个集群架构的管理,调度,存储等,工作节点是实际应用容器工作的节点。
[0005]在基于泛容计算架构的Kuberbetes集群中,由于泛容计算架构的特性,集群中的业务会被细分为多个细致的独立服务,而每一个服务则由一个独立的容器去完成,所以完成一个用户所发起的业务,就会由多个负责不同功能的容器一起合作完成。而在这种多个独立容器协同工作,就不可避免地给集群带了额外的网络开销,也就需要涉及集群管理的问题尤其是调度算法的问题,如何选择合适的容器到合适的节点上运行,也就成为了一个研究的热点问题。一个Kuberbetes集群中节点的资源一定是有限的,一个合适的调度算法不仅可以提高系统资源的利用率,还可以减少因为频繁调度容器而造成的系统消耗,节约成本和时间。
[0006]综上,针对基于Kubernetes的集群管理调度的基础上设计一种调度算法,达到一种面向于容器调度的目的。这种调度算法根据泛容计算中各个Docker容器功能的不同,给Docker容器打上标签,根据容器标签的类型的不同将其调度到更加合适的节点上。这种实现基于泛容计算架构的Kubernetes集群调度和部署的方式,是一种面向容器的方案。它不像我们日常所见到的面向节点的调度方案,根据节点的各项指标打分,然后选取最高评分的节点进行调度。在泛容计算中,这种新型的调度方案无疑是一种资源利用率高且高效的解决方式。
[0007]这种调度算法主要是为了改善在基于泛容计算架构的Kubernetes集群中系统资
源的利用率问题,相比于传统的Kubernetes集群中一项业务只有一个独立容器负责,不涉及容器间的数据交互,而在泛容计算中因为需要多个容器间协同工作,所以出现的容器间的数据交互,如果基于原始的调度方案,仅根据节点的负载平衡来部署容器,如果涉及到两个需要频繁通信交互的容器,在不同的工作节点,而带来的网络开销问题。以及不同功能容器的需求的节点属性不同,比如存储功能的容器对节点的存储量需求更大,负责计算功能的容器对CPU的要求更高等。这种新型的面向容器的调度算法就是为了解决这种类型的问题。

技术实现思路

[0008]为解决上述问题,本专利技术提出了一种基于泛容计算架构的集群调度方法,解决了在基于泛容计算架构的Kubernetes集群中系统资源的利用率问题,相比于传统的Kubernetes集群中一项业务只有一个独立容器负责,不涉及容器间的数据交互,而在泛容计算中因为需要多个容器间协同工作,所以出现的容器间的数据交互,如果基于原始的调度方案,仅根据节点的负载平衡来部署容器,如果涉及到两个需要频繁通信交互的容器,在不同的工作节点,而带来的网络开销问题。以及负责不同功能容器的需求的节点属性不同,比如负责存储功能的容器对节点的存储量需求更大,负责计算功能的容器对CPU的要求更高等。在Kubernetes集群中包括至少三个侧重于不同特点的节点,以及多个不同功能的容器。所述三个侧重于不同特点的节点,一个负责运行需要大量运算的容器,称为计算节点,拥有更好的计算资源。一个负责运行需要存储大量数据的容器,称为存储节点,拥有更好的存储资源。一个负责运行对其他资源不敏感的容器,称为基础节点,拥有平衡的系统资源。另外,基于Kubernetes的集群还可以对整个架构中的所有容器,节点进行数据和状态的监控,并进行管理。所述类似负责存储功能的节点,在架构中可以有多个节点,形成一个分布式存储数据的集群,主要负责对负责存储功能的容器中的数据进行分布式存储,提升架构整体的备份存储的能力以及可扩展能力。调度算法会根据节点的标签和待调度容器的标签进行调度,使每一个容器都能运行在拥有其所负责功能资源更好的节点上。
[0009]为实现上述目的,本专利技术提供如下技术方案:一种基于泛容计算架构的集群调度方法,具体包括如下步骤:
[0010]步骤1,配置kubernetes集群,定义kubernetes集群的管理节点和各类工作节点,包括建立管理节点和工作节点上的各类Docker镜像和安装相关的工具;
[0011]步骤2,根据用户的不同业务,将业务划分为多个不同的功能的容器,容器包括存储功能,计算功能;并在Kubernetes集群上对这些容器进行部署;
[0012]步骤3:在调度算法开始阶段,首先查询所有可用的工作节点,并记录这些工作节点的标签信息;
[0013]步骤4:查询所有待调度的容器的标签;
[0014]步骤5:将待调度的容器的标签依次与节点的标签进行比对,如果有可以相匹配的节点则进入步骤6,如果没有则将该容器调度到基本节点;
[0015]步骤6:根据标签信息,查询待调度的容器是否有需要频繁通信的容器,如果存在则将该容器对应的一个或多个该容器调度到同一工作节点,如果没有该容器,则直接将待调度该容器直接调度到与该容器的标签对应的工作节点;
[0016]步骤7,部署kubernetes集群的可视化插件,对kubernetes集群中的所有节点以及容器的各项状态进行可视化展示。
[0017]优选的,在步骤2中,当业务需要存储或计算功能的容器时,可能会生成多个同种功能的容器;生成多个存储功能的容器,一个业务中的用户数据和数据库的数据可能不止存放在一个负责存储功能的容器中,可能会存在一对多,多对一,或者多对多的情况,形成一种分布式的存储架构;可以生成多个计算功能的容器,提高架构的并行能力。
[0018]优选的,在步骤6中,根据容器自身的标签将容器调度到不同的节点上,对于如果有两个或多个容器之本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于泛容计算架构的集群调度方法,其特征在于,具体包括如下步骤:步骤1,配置kubernetes集群,定义kubernetes集群的管理节点和各类工作节点,包括建立管理节点和工作节点上的各类Docker镜像和安装相关的工具;步骤2,根据用户的不同业务,将业务划分为多个不同的功能的容器,容器包括存储功能,计算功能;并在Kubernetes集群上对这些容器进行部署;步骤3:在调度算法开始阶段,首先查询所有可用的工作节点,并记录这些工作节点的标签信息;步骤4:查询所有待调度的容器的标签;步骤5:将待调度的容器的标签依次与节点的标签进行比对,如果有可以相匹配的节点则进入步骤6,如果没有则将该容器调度到基本节点;步骤6:根据标签信息,查询待调度的容器是否有需要频繁通信的容器,如果存在则将该容器对应的一个或多个该容器调度到同一工作节点,如果没有该容器,则直接将待调度该容器直接调度到与该容器的标签对应的工作节点;步骤7,部署kubernetes集群的可视化插件,对kubernetes集群中的所有节点以及容器的各项状态进行可视化展示。2.根据权利要求1所述的...

【专利技术属性】
技术研发人员:黑新宏刘怡凡王一川宋昕杜延宁王周恺
申请(专利权)人:西安理工大学
类型:发明
国别省市:

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

1