本发明涉及集群调度领域,尤其涉及一种k8s集群的资源调度方法、设备及存储介质。
背景技术:
1、目前云原生的趋势,越来越多企业将自家的服务上传至云端,并通过kubernetes的方式进行管控,但是随着企业对成本要求的控制越来越严格,并且随着业务迭代越来越快,会出现一个企业可能就拥有不少于五个k8s集群,那么如果需要在多个集群部署同样的资源就需要手动在多个集群部署。
2、如果企业需要根据成本或者外部因素可能随时需要调度同样的资源在不同集群的分配,就需要人员先把多个集群信息浏览后手动调整多个集群的资源。如果企业在成本上提出更高的要求,希望回收没有使用资源的服务时候,若业务体量非常庞大,则人力资源已经无法完成该项需求,那么这个时候就需要引入多个kubernetes集群的联邦化管理,同时通过拓展原有各个kubernetes集群的scheduler组件,更需要引入总scheduler来优化上层资源调度。
3、当前,现有的多集群联合管理的技术缺乏多集群总调度能力,虽然分布式多集群托管的方案实现了一个资源多集群管理的功能,但是在总scheduler上并不存在调度的相关策略,而是先下发对应的资源,资源出现分发失败后再重新调度,由此导致资源的消耗影响业务数据的正常处理。因此,针对当前多集群联合管理的资源消耗过大影响业务数据处理的技术问题,需要一种新的技术来解决当前的问题。
技术实现思路
1、本发明的主要目的在于解决当前多集群联合管理的资源消耗过大影响业务数据处理的技术问题。
2、本发明第一方面提供了一种k8s集群的资源调度方法,所述k8s集群的资源调度方法应用于k8s集群的资源调度系统,所述k8s集群的资源调度系统包括:总调度k8s集群、n个子调度k8s集群,其中,n为正整数,所述k8s集群的资源调度方法包括:
3、所述总调度k8s集群的scheduler组件接收n个所述子调度k8s集群发送的子节点信息,得到子节点信息集;
4、根据预置调度标记算法,对所述子节点信息集进行标签标记处理,得到标记信息集;
5、所述总调度k8s集群的scheduler组件接收workload资源指令;
6、根据所述workload资源指令,对所述标记信息集中数据进行匹配分配处理,得到所述workload资源指令对应的节点调度数据,以及发送所述节点调度数据至n个所述子调度k8s集群中;
7、n个所述子调度k8s集群的scheduler组件接收所述节点调度数据,以及根据所述节点调度数据,将pod容器部署在节点中,以便满足所述workload资源指令。
8、可选的,在本发明第一方面的第一种实现方式中,所述根据预置调度标记算法,对所述子节点信息集进行标签标记处理,得到标记信息集包括:
9、基于yaml文件,对所述子节点信息集中的cluster资源进行定义,得到定义信息集;
10、基于affinity标签,对所述定义信息集进行标记处理,得到到标记信息集。
11、可选的,在本发明第一方面的第二种实现方式中,所述根据所述workload资源指令,对所述标记信息集中数据进行匹配分配处理,得到所述workload资源指令对应的节点调度数据包括:
12、根据所述workload资源指令,筛选所述标记信息集中的cluster标签,得到第一指定部署集;
13、对所述第一指定部署集对应节点进行资源支持分析,筛选出资源充足的第二指定部署集;
14、根据预置权重调度设置,对所述第二指定部署集进行权重优先筛选处理,得到所述workload资源指令对应的节点调度数据。
15、可选的,在本发明第一方面的第三种实现方式中,所述根据预置权重调度设置,对所述第二指定部署集进行权重优先筛选处理,得到所述workload资源指令对应的节点调度数据包括:
16、基于预置平台权重,对所述第二指定部署集进行平台评分处理,得到第一评分部署集;
17、基于预置地域权重,对所述第一评分部署集进行地域评分处理,得到第二评分部署集;
18、基于n个所述子调度k8s集群的节点负载比例,对所述第二评分部署集进行负载评分处理,得到第三评分部署集;
19、根据预置分数筛选阈值,对所述第三评分部署集进行筛选处理,得到所述workload资源指令对应的节点调度数据。
20、可选的,在本发明第一方面的第四种实现方式中,所述根据预置分数筛选阈值,对所述第三评分部署集进行筛选处理,得到所述workload资源指令对应的节点调度数据包括:
21、筛选出所述第三评分部署集中平台评分大于第一筛选阈值,且地域评分大于第二筛选阈值,且负载评分大于第三筛选阈值的数据,得到支持调度节点集;
22、根据预置分配部署规则,对所述支持调度节点集进行分配处理,得到所述workload资源指令对应的节点调度数据。
23、可选的,在本发明第一方面的第五种实现方式中,所述分配部署规则包括:平均分配规则、指定分配规则、随机分配规则。
24、可选的,在本发明第一方面的第六种实现方式中,所述workload资源指令包括:m个调度cluster名称、所述调度cluster名称对应的负载权重,其中,m为正整数。
25、可选的,在本发明第一方面的第七种实现方式中,所述根据所述workload资源指令,对所述标记信息集中数据进行匹配分配处理,得到所述workload资源指令对应的节点调度数据包括:
26、基于所述调度cluster名称对应的负载权重,将所述标记信息集中数据分配给m个所述调度cluster名称,生成所述workload资源指令对应的节点调度数据。
27、本发明第二方面提供了一种k8s集群的资源调度设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述k8s集群的资源调度设备执行上述的k8s集群的资源调度方法。
28、本发明的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的k8s集群的资源调度方法。
29、在本发明实施例中,通过对kubernetesscheduler集成pod容器的调度,以最大程度利用集群资源,实现用户定义的调度策略,并且实现了在前多集群联合系统里执行相关调度的资源消耗降低,在scheduler组件中分析节点资源利用率、pod资源需求情况、节点亲和性、pod亲和性、污点容忍的情况,确定了最佳调度方法,解决了当前多集群联合管理的资源消耗过大影响业务数据处理的技术问题。
1.一种k8s集群的资源调度方法,其特征在于,所述k8s集群的资源调度方法应用于k8s集群的资源调度系统,所述k8s集群的资源调度系统包括:总调度k8s集群、n个子调度k8s集群,其中,n为正整数,所述k8s集群的资源调度方法包括:
2.根据权利要求1所述的k8s集群的资源调度方法,其特征在于,所述根据预置调度标记算法,对所述子节点信息集进行标签标记处理,得到标记信息集包括:
3.根据权利要求1所述的k8s集群的资源调度方法,其特征在于,所述根据所述workload资源指令,对所述标记信息集中数据进行匹配分配处理,得到所述workload资源指令对应的节点调度数据包括:
4.根据权利要求3所述的k8s集群的资源调度方法,其特征在于,所述根据预置权重调度设置,对所述第二指定部署集进行权重优先筛选处理,得到所述workload资源指令对应的节点调度数据包括:
5.根据权利要求4所述的k8s集群的资源调度方法,其特征在于,所述根据预置分数筛选阈值,对所述第三评分部署集进行筛选处理,得到所述workload资源指令对应的节点调度数据包括:
6.根据权利要求5所述的k8s集群的资源调度方法,其特征在于,所述分配部署规则包括:平均分配规则、指定分配规则、随机分配规则。
7.根据权利要求1所述的k8s集群的资源调度方法,其特征在于,所述workload资源指令包括:m个调度cluster名称、所述调度cluster名称对应的负载权重,其中,m为正整数。
8.根据权利要求7所述的k8s集群的资源调度方法,其特征在于,所述根据所述workload资源指令,对所述标记信息集中数据进行匹配分配处理,得到所述workload资源指令对应的节点调度数据包括:
9.一种k8s集群的资源调度设备,其特征在于,所述k8s集群的资源调度设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8中任一项所述的k8s集群的资源调度方法。