本公开涉及数据处理,具体涉及一种集群调度方法、集群调度装置、存储介质及电子设备。
背景技术:
1、k8s就是基于容器的集群管理平台,它的全称是kubernetes。一个k8s系统,通常称为一个k8s集群(cluster),这个集群主要包括两个部分:一个master节点(主节点),以及一群node节点(计算节点)。master节点主要负责管理和控制,node节点是工作负载节点,里面是具体的容器。在kubernetes中,调度是指将pod放置到合适的节点上,以便对应节点上的kubelet(节点代理)能够运行这些pod。
2、现有的k8s原生调度器,不感知pod资源的实际使用情况,只基于静态request值进行调度,会导致机器的负载不均衡,产生热点机器或过于空闲的机器,产生系统稳定性风险或造成资源浪费;基于负载感知的调度策略,会基于当前的实际使用率进行调度,基于当前时间节点的使用率做出整体均衡性的最优判断和决策,但是pod的使用率是动态变化的,存在波峰波谷,当前的最优决策无法保证全时段的使用率情况;基于应用的反亲和策略,能保证相同应用或同类应用的打散,避免相同或同类应用峰值重叠,但是没法保证整体的错峰,没法解决根本问题,且因为波峰波谷的高低不同,也无法有效控制使用率的整体水位。
3、需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
1、本公开的目的在于提供一种集群调度方法、集群调度装置、存储介质及电子设备,旨在解决k8s集群调度负载不均衡的问题。
2、本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
3、根据本公开实施例的一方面,提供了一种集群调度方法,应用于node节点,所述方法包括:获取当前node节点上正在运行的pod,并采集所述pod在预设时间段内的pod使用率数据;将所述pod使用率数据按照时间节点进行累加,以得到所述当前node节点在所述预设时间段内的node使用率数据;响应于调度器的缓存指令,将所述node使用率数据发送至所述调度器,以使所述调度器根据所述node使用率数据和待调度pod的pod使用率数据进行调度。
4、根据本公开的一些实施例,基于前述方案,所述采集所述pod在预设时间段内的pod使用率数据,包括:在缓存中查询是否存在所述pod的数据;在存在所述pod的数据,且在所述预设时间段内数据完整时,从所述缓存中提取所述pod使用率数据;在存在所述pod的数据,但在所述预设时间段内数据不完整时,从所述缓存中提取已有数据以及基于应用画像服务提取剩余数据以得到所述pod使用率数据;在不存在所述pod的数据时,基于所述应用画像服务提取所述pod使用率数据。
5、根据本公开的一些实施例,基于前述方案,所述基于所述应用画像服务提取所述pod使用率数据,包括:基于所述pod的标签信息生成数据获取请求;向所述应用画像服务发送所述数据获取请求,以使所述应用画像服务根据所述标签信息提取所述pod使用率数据。
6、根据本公开的一些实施例,基于前述方案,所述将所述pod使用率数据按照时间节点进行累加,以得到所述当前node节点在所述预设时间段内的node使用率数据,包括:将同一时间节点上的pod使用率进行累加得到该时间节点上的node使用率;遍历所述预设时间段内的所有时间节点,以得到所述node使用率数据。
7、根据本公开的一些实施例,基于前述方案,在得到所述当前node节点在所述预设时间段内的node使用率数据之后,所述方法还包括:配置采样间隔时间;按照所述采样间隔时间将所述预设时间段划分为采样时间段;基于所述node使用率数据计算各采样时间段对应的node平均使用率,以更新所述node使用率数据。
8、根据本公开实施例的第二方面,提供了另一种集群调度方法,应用于调度器,所述方法包括:向各node节点发送缓存指令,以缓存各所述node节点的node使用率数据;以及获取待调度pod的pod使用率数据;将所述待调度pod的pod使用率数据与各所述node节点的node使用率数据分别进行累加得到各所述node节点上的累加结果;根据所述各所述node节点上的累加结果确定所述待调度pod所放置的目标node节点。
9、根据本公开的一些实施例,基于前述方案,所述获取待调度pod的pod使用率数据,包括:向应用画像服务发送数据获取请求;在所述应用画像服务中存在所述待调度pod时,获取所述应用画像服务返回的所述pod使用率数据;在所述应用画像服务中不存在所述待调度pod时,获取所述应用画像服务返回的所述待调度pod的静态使用率值作为所述pod使用率数据。
10、根据本公开的一些实施例,基于前述方案,所述根据所述各所述node节点上的累加结果确定所述待调度pod所放置的目标node节点,包括:在所述node节点上的累加结果超过了预设使用率阈值时,将所述node节点剔除得到可调度node节点集合;根据所述累加结果计算所述可调度node节点集合中各node节点的均衡参数值;基于所述均衡参数值从所述可调度node节点集合中选取所述目标node节点。
11、根据本公开实施例的第三方面,提供了一种集群调度装置,应用于node节点,包括:采集模块,用于获取当前node节点上正在运行的pod,并采集所述pod在预设时间段内的pod使用率数据;计算模块,用于将所述pod使用率数据按照时间节点进行累加,以得到所述当前node节点在所述预设时间段内的node使用率数据;发送模块,用于响应于调度器的缓存指令,将所述node使用率数据发送至所述调度器,以使所述调度器根据所述node使用率数据和待调度pod的pod使用率数据进行调度。
12、根据本公开实施例的第四方面,提供了一种集群调度装置,应用于调度器,包括:第一获取模块,用于向各node节点发送缓存指令,以缓存各所述node节点的node使用率数据;以及第二获取模块,用于获取待调度pod的pod使用率数据;累加模块,用于将所述待调度pod的pod使用率数据与各所述node节点的node使用率数据分别进行累加得到各所述node节点上的累加结果;调度模块,用于根据所述各所述node节点上的累加结果确定所述待调度pod所放置的目标node节点。
13、根据本公开实施例的第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中的集群调度方法。
14、根据本公开实施例的第六方面,提供了一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中的集群调度方法。
15、本公开示例性实施例可以具有以下部分或全部有益效果:
16、在本公开的一些实施例所提供的技术方案中,一方面通过当前正在运行的pod节点的历史数据对node上的使用率进行画像计算,相较于现有的基于一成不变的历史数据分析方法,可以确保使用率数据的实时性和准确性,提高调度的精度;另一方面,通过node与pod的使用率累加的方式来实现优选与筛选的调度,能够保证该node节点使用率全时段负载均衡。
17、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
1.一种集群调度方法,其特征在于,应用于node节点,所述方法包括:
2.根据权利要求1所述的集群调度方法,其特征在于,所述采集所述pod在预设时间段内的pod使用率数据,包括:
3.根据权利要求2所述的集群调度方法,其特征在于,所述基于所述应用画像服务提取所述pod使用率数据,包括:
4.根据权利要求1所述的集群调度方法,其特征在于,所述将所述pod使用率数据按照时间节点进行累加,以得到所述当前node节点在所述预设时间段内的node使用率数据,包括:
5.根据权利要求1所述的集群调度方法,其特征在于,在得到所述当前node节点在所述预设时间段内的node使用率数据之后,所述方法还包括:
6.一种集群调度方法,其特征在于,应用于调度器,所述方法包括:
7.根据权利要求6所述的集群调度方法,其特征在于,所述获取待调度pod的pod使用率数据,包括:
8.根据权利要求6所述的集群调度方法,其特征在于,所述根据所述各所述node节点上的累加结果确定所述待调度pod所放置的目标node节点,包括:
9.一种集群调度装置,其特征在于,应用于node节点,包括:
10.一种集群调度装置,其特征在于,应用于调度器,包括:
11.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1至8任一项所述的集群调度方法。
12.一种电子设备,其特征在于,包括: