基于kubernets多集群的容器调度系统及方法与流程

文档序号:31714113发布日期:2022-10-04 20:56阅读:115来源:国知局
基于kubernets多集群的容器调度系统及方法与流程

1.本发明涉及云计算技术领域,具体地说是一种基于kubernets多集群的容器调度系统及方法。


背景技术:

2.kubernetes是目前云计算基础技术重要的一环,使用场景非常广泛。开发人员可以通过使用kubernetes来作为云计算平台底层的实现,随着云计算和互联网时代的发展,产生了越来越多的云平台,同时促进了kubernets多集群运管平台的产生。但是当前的kubernets多集群运管平台一般只能提供单个集群中容器的部署和多个集群下容器的统一部署,不能实现多个kubernets集群下容器的自动化调度部署,而单个集群容器部署存在多个冗余操作,多个集群统一部署需要工作人员人为判断容器与集群的适配度,增加了工作人员的技术难度和工作成本。
3.故如何实现kubernets多集群运管平台容器在多集群中自动化部署调度,降低了工作人员的技术难度和工作成本是目前亟待解决的技术问题。


技术实现要素:

4.本发明的技术任务是提供一种基于kubernets多集群的容器调度系统及方法,来解决目前kubernets多集群运管平台不能实现多个kubernets集群下容器的自动化调度部署的问题。
5.本发明的技术任务是按以下方式实现的,一种基于kubernets多集群的容器调度系统,该系统包括集群纳管单元、集群信息检测单元、集群容器调度单元和存储单元;
6.其中,集群纳管单元用于对不同环境下的kubernets集群进行统一的纳管,并把集群的状态信息存放到存储单元;
7.集群信息检测单元用于实时检测和收集被集群纳管单元纳管的kubernets集群的状态信息;
8.集群容器调度单元用于解析集群容器部署策略的部署信息,分别使用集群预选算法和集群优先算法对集群进行筛选和积分计算;并根据集群容器部署策略对集群的需要进行容器在多集群中的自动化调度部署;
9.存储单元用于存储集群容器部署策略、集群状态等需要存储的相关信息。
10.作为优选,集群容器调度单元的工作过程具体如下:
11.(1)、解析集群容器的部署策略;
12.(2)、判断是否存在多种集群预选信息:
13.①
、若是,则集群优选算法根据预选信息筛选集群,并跳转至步骤(4);
14.②
、若否,则执行步骤(3);
15.(3)、判断是否设置优先级字段:
16.①
、若是,则使用设置的优先级筛选集群,并跳转至步骤(4);
17.②
、若否,则使用默认优先级和信息筛选集群,并跳转至步骤(4);
18.(4)、获取可用集群列表;
19.(5)、对可用集群列表中的集群进行积分计算,公式如下:
20.集群最终得分=优选算法一得分*优选算法一权重+优选算法二得分*优选算法二权重;
21.其中,优选算法一是根据集群容器部署策略中容器在集群中的部署副本数和可用列表集群中集群的节点数量计算得分;具体如下:
22.当集群的节点数量大于集群容器的副本数量时,集群节点数量越多,集群的得分越低;
23.当集群的节点数量小于集群容器的副本数量时,集群的节点数量越少,集群得分越低;
24.集群的节点数量小于集群容器副本数量的集群得分均小于集群节点数量大于容器副本数量的集群得分;
25.通过优选算法一选择出集群节点数量与集群容器的副本数量最相近的节点,提高了集群在部署容器时对节点的筛选效率;
26.优选算法二是根据集群剩余的cpu和内存的平均值对集群进行积分计算;
27.其中,集群所剩余的cpu和内存的平均值越大,集群的所得积分越高;反之,集群所剩余的cpu和内存的平均值越小,集群的所得积分越低;
28.(6)、通过集群积分计算公式、优选算法一得分和优选算法二得分计算出集群的最终得分;
29.(7)、根据每个集群的最终得分对可用集群列表中的集群进行排序,得到集群部署列表。
30.一种基于kubernets多集群的容器调度方法,该方法具体如下:
31.根据集群信息检测单元获取一个或多个可调度的集群,得到可调度的集群列表;
32.通过集群预选算法对可调度的集群列表进行筛选,得到能够部署容器的集群列表为可用集群列表;
33.通过集群优选算法对可用集群列表中的集群进行积分计算,根据集群所得积分,对集群进行排序,得到集群部署列表;
34.根据集群部署列表和集群部署策略中对集群的需要,依次从集群部署列表中选择集群进行容器的部署。
35.作为优选,可调度的集群列表的获取过程具体如下:
36.实时的监测已经被集群纳管单元纳管的集群的状态信息;具体如下:
37.若集群的状态信息为健康状态,则为可调度集群;
38.若集群的状态信息为非健康状态,则为不可调度集群。
39.作为优选,通过集群预选算法对可调度的集群列表进行筛选,得到能够部署容器的集群列表为可用集群列表具体如下:
40.通过集群容器调度单元解析集群容器的部署策略,根据集群容器部署策略选择合适的集群预选算法对可调度集群列表进行筛选工作得到可用集群列表;
41.集群预选算法根据集群容器部署策略中所设置的集群名称、集群标签和集群分组
信息对可调度集群列表进行筛选;
42.集群容器部署策略中所设置的集群名称、集群标签和集群分组信息均设置多条,例如:可以设置两条集群名称;同时集群容器部署策略中所设置的集群名称、集群标签和集群分组信息单独使用或组合使用;在组合使用时,筛选符合所有条件的集群,并通过算法优先级字段设置集群名称、集群标签和集群分组信息在集群预选算法中执行的优先级,通过合理的设置算法优先级有效的提高集群预选算法的执行效率;
43.所有通过集群预选算法的集群形成可用集群列表。
44.更优地,通过集群优选算法对可用集群列表中的集群进行积分计算,根据集群所得积分,对集群进行排序,得到集群部署列表具体如下:
45.对可用集群列表中的集群进行积分计算,公式如下:
46.集群最终得分=优选算法一得分*优选算法一权重+优选算法二得分*优选算法二权重;
47.通过集群积分计算公式、优选算法一得分和优选算法二得分计算出集群的最终得分,根据每个集群的最终得分对可用集群列表中的集群进行排序,得到集群部署列表。
48.更优地,优选算法一是根据集群容器部署策略中容器在集群中的部署副本数和可用列表集群中集群的节点数量计算得分;具体如下:
49.当集群的节点数量大于集群容器的副本数量时,集群节点数量越多,集群的得分越低;
50.当集群的节点数量小于集群容器的副本数量时,集群的节点数量越少,集群得分越低;
51.集群的节点数量小于集群容器副本数量的集群得分均小于集群节点数量大于容器副本数量的集群得分;
52.通过优选算法一选择出集群节点数量与集群容器的副本数量最相近的节点,提高了集群在部署容器时对节点的筛选效率;
53.优选算法二是根据集群剩余的cpu和内存的平均值对集群进行积分计算;
54.其中,集群所剩余的cpu和内存的平均值越大,集群的所得积分越高;反之,集群所剩余的cpu和内存的平均值越小,集群的所得积分越低。
55.作为优选,根据集群部署列表和集群部署策略中对集群的需要,依次从集群部署列表中选择集群进行容器的部署具体如下:
56.通过集群容器调度单元解析集群容器的部署策略,解析出容器部署需要的集群部署信息,通过集群的部署信息依次从集群部署列表中获取集群进行容器部署。
57.一种电子设备,包括:存储器和至少一个处理器;
58.其中,所述存储器上存储有计算机程序;
59.所述至少一个处理器执行所述存储器存储的计算机程序,使得所述至少一个处理器执行如上述的基于kubernets多集群的容器调度方法。
60.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如上述的基于kubernets多集群的容器调度方法。
61.本发明的基于kubernets多集群的容器调度系统及方法具有以下优点:
62.(一)本发明通过集群预算算法和集群优选算法能够自动化的选择适合容器部署
的集群列表,解决了目前kubernets多集群运管平台容器在多集群中自动化部署调度的问题,降低了工作人员的技术难度和工作成本;
63.(二)本发明通过合理的设置预算算法中的算法优先级可以大幅度的提高集群的筛选速度,提高了容器在多集群下的部署效率。
附图说明
64.下面结合附图对本发明进一步说明。
65.附图1为基于kubernets多集群的容器调度方法的流程框图;
66.附图2为集群容器调度单元的工作过程的流程框图。
具体实施方式
67.参照说明书附图和具体实施例对本发明的基于kubernets多集群的容器调度系统及方法作以下详细地说明。
68.实施例1:
69.本实施例提供了一种基于kubernets多集群的容器调度系统,该系统包括集群纳管单元、集群信息检测单元、集群容器调度单元和存储单元;
70.其中,集群纳管单元用于对不同环境下的kubernets集群进行统一的纳管,并把集群的状态信息存放到存储单元;
71.集群信息检测单元用于实时检测和收集被集群纳管单元纳管的kubernets集群的状态信息;
72.集群容器调度单元用于解析集群容器部署策略的部署信息,分别使用集群预选算法和集群优先算法对集群进行筛选和积分计算;并根据集群容器部署策略对集群的需要进行容器在多集群中的自动化调度部署;
73.存储单元用于存储集群容器部署策略、集群状态等需要存储的相关信息。
74.如附图2所示,本实施例中的集群容器调度单元的工作过程具体如下:
75.(1)、解析集群容器的部署策略;
76.(2)、判断是否存在多种集群预选信息:
77.①
、若是,则集群优选算法根据预选信息筛选集群,并跳转至步骤(4);
78.②
、若否,则执行步骤(3);
79.(3)、判断是否设置优先级字段:
80.①
、若是,则使用设置的优先级筛选集群,并跳转至步骤(4);
81.②
、若否,则使用默认优先级和信息筛选集群,并跳转至步骤(4);
82.(4)、获取可用集群列表;
83.(5)、对可用集群列表中的集群进行积分计算,公式如下:
84.集群最终得分=优选算法一得分*优选算法一权重+优选算法二得分*优选算法二权重;
85.其中,优选算法一是根据集群容器部署策略中容器在集群中的部署副本数和可用列表集群中集群的节点数量计算得分;具体如下:
86.当集群的节点数量大于集群容器的副本数量时,集群节点数量越多,集群的得分
越低;
87.当集群的节点数量小于集群容器的副本数量时,集群的节点数量越少,集群得分越低;
88.集群的节点数量小于集群容器副本数量的集群得分均小于集群节点数量大于容器副本数量的集群得分;
89.通过优选算法一选择出集群节点数量与集群容器的副本数量最相近的节点,提高了集群在部署容器时对节点的筛选效率;
90.优选算法二是根据集群剩余的cpu和内存的平均值对集群进行积分计算;
91.其中,集群所剩余的cpu和内存的平均值越大,集群的所得积分越高;反之,集群所剩余的cpu和内存的平均值越小,集群的所得积分越低;
92.(6)、通过集群积分计算公式、优选算法一得分和优选算法二得分计算出集群的最终得分;
93.(7)、根据每个集群的最终得分对可用集群列表中的集群进行排序,得到集群部署列表。
94.实施例2:
95.如附图1所示,本发明提供了一种基于kubernets多集群的容器调度方法,该方法具体如下:
96.s1、根据集群信息检测单元获取一个或多个可调度的集群,得到可调度的集群列表;
97.s2、通过集群预选算法对可调度的集群列表进行筛选,得到能够部署容器的集群列表为可用集群列表;
98.s3、通过集群优选算法对可用集群列表中的集群进行积分计算,根据集群所得积分,对集群进行排序,得到集群部署列表;
99.s4、根据集群部署列表和集群部署策略中对集群的需要,依次从集群部署列表中选择集群进行容器的部署。
100.本实施例步骤s1中的可调度的集群列表的获取过程具体如下:
101.实时的监测已经被集群纳管单元纳管的集群的状态信息;具体如下:
102.①
、若集群的状态信息为健康状态,则为可调度集群;
103.②
、若集群的状态信息为非健康状态,则为不可调度集群。
104.本实施例步骤s2中的通过集群预选算法对可调度的集群列表进行筛选,得到能够部署容器的集群列表为可用集群列表具体如下:
105.s201、通过集群容器调度单元解析集群容器的部署策略,根据集群容器部署策略选择合适的集群预选算法对可调度集群列表进行筛选工作得到可用集群列表;
106.s202、集群预选算法根据集群容器部署策略中所设置的集群名称、集群标签和集群分组信息对可调度集群列表进行筛选;
107.s203、集群容器部署策略中所设置的集群名称、集群标签和集群分组信息均设置多条,例如:可以设置两条集群名称;同时集群容器部署策略中所设置的集群名称、集群标签和集群分组信息单独使用或组合使用;在组合使用时,筛选符合所有条件的集群,并通过算法优先级字段设置集群名称、集群标签和集群分组信息在集群预选算法中执行的优先
级,通过合理的设置算法优先级有效的提高集群预选算法的执行效率;
108.s204、所有通过集群预选算法的集群形成可用集群列表。
109.本实施例步骤s3中的通过集群优选算法对可用集群列表中的集群进行积分计算,根据集群所得积分,对集群进行排序,得到集群部署列表具体如下:
110.s301、对可用集群列表中的集群进行积分计算,公式如下:
111.集群最终得分=优选算法一得分*优选算法一权重+优选算法二得分*优选算法二权重;
112.s302、通过集群积分计算公式、优选算法一得分和优选算法二得分计算出集群的最终得分,根据每个集群的最终得分对可用集群列表中的集群进行排序,得到集群部署列表。
113.本实施例中的优选算法一是根据集群容器部署策略中容器在集群中的部署副本数和可用列表集群中集群的节点数量计算得分;具体如下:
114.当集群的节点数量大于集群容器的副本数量时,集群节点数量越多,集群的得分越低;
115.当集群的节点数量小于集群容器的副本数量时,集群的节点数量越少,集群得分越低;
116.集群的节点数量小于集群容器副本数量的集群得分均小于集群节点数量大于容器副本数量的集群得分;
117.通过优选算法一选择出集群节点数量与集群容器的副本数量最相近的节点,提高了集群在部署容器时对节点的筛选效率;
118.本实施例中的优选算法二是根据集群剩余的cpu和内存的平均值对集群进行积分计算;
119.其中,集群所剩余的cpu和内存的平均值越大,集群的所得积分越高;反之,集群所剩余的cpu和内存的平均值越小,集群的所得积分越低。
120.本实施例步骤s4中的根据集群部署列表和集群部署策略中对集群的需要,依次从集群部署列表中选择集群进行容器的部署具体如下:
121.通过集群容器调度单元解析集群容器的部署策略,解析出容器部署需要的集群部署信息,通过集群的部署信息依次从集群部署列表中获取集群进行容器部署。
122.实施例3:
123.本实施例还提供了一种电子设备,包括:存储器和处理器;
124.其中,存储器存储计算机执行指令;
125.处理器执行所述存储器存储的计算机执行指令,使得处理器执行本发明任一实施例中的基于kubernets多集群的容器调度方法。
126.处理器可以是中央处理单元(cpu),还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通过处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
127.存储器可用于储存计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现电子设备的各种功能。
存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器还可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,只能存储卡(smc),安全数字(sd)卡,闪存卡、至少一个磁盘存储期间、闪存器件、或其他易失性固态存储器件。
128.实施例4:
129.本实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的基于kubernets多集群的容器调度方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
130.在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
131.用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-rym、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
132.此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
133.此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
134.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1