本公开涉及云计算,具体地涉及一种应用容器调度方法、装置、设备、介质和程序产品。
背景技术:
1、随着云原生技术的快速普及,全面云原生的时代已然到来。在k8s原生调度策略中只能根据cpu、内存等宿主机计算资源进行调度,导致单台工作节点上可能出现多个甚至是全部的磁盘敏感度高的容器,单个容器的高磁盘io会引发同宿主机上另一个容器的读写故障,造成容器之前的相互影响及底层环境资源的不稳定性。
2、需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
1、鉴于上述问题,本公开提供了一种应用容器调度方法、装置、设备、存储介质和程序产品。
2、根据本公开的第一个方面,提供了一种应用容器调度方法,所述方法包括:
3、响应于应用容器的部署请求,确定待部署应用容器的容器类型和工作节点信息,其中,所述工作节点用于部署运行应用容器,所述工作节点信息包括工作节点的磁盘类型和高敏感容器比例,所述高敏感容器比例用于表征所述工作节点中磁盘输入输出敏感等级高的容器数量占容器总数量的比例;
4、根据所述待部署应用容器的容器类型确定所述待部署应用容器的磁盘输入输出敏感等级;
5、基于所述磁盘输入输出敏感等级、所述工作节点的磁盘类型和所述高敏感容器比例确定目标工作节点;以及
6、将所述待部署应用容器部署至所述目标工作节点。
7、根据本公开的实施例,所述根据所述待部署应用容器的容器类型确定所述待部署应用容器的磁盘输入输出敏感等级包括:
8、识别所述待部署应用容器名称中的关键字;以及
9、根据所述关键字确定所述待部署应用容器的磁盘输入输出敏感等级。
10、根据本公开的实施例,所述基于所述磁盘输入输出敏感等级、所述工作节点的磁盘类型和所述高敏感容器比例确定目标工作节点包括:
11、根据所述磁盘输入输出敏感等级和所述工作节点的磁盘类型确定至少一个第一候选工作节点;
12、根据所述第一候选工作节点的高敏感容器比例确定至少一个第二候选工作节点;以及
13、根据所述磁盘输入输出敏感等级和所述第二候选工作节点的高敏感容器比例确定目标工作节点。
14、根据本公开的实施例,根据所述磁盘输入输出敏感等级和所述工作节点的磁盘类型确定至少一个第一候选工作节点包括:
15、根据所述磁盘输入输出敏感等级确定所述待部署应用容器对应的目标磁盘类型;以及
16、根据所述目标磁盘类型和所述工作节点的磁盘类型确定至少一个第一候选工作节点。
17、根据本公开的实施例,所述根据所述第一候选工作节点的高敏感容器比例确定至少一个第二候选工作节点包括:
18、确定所述第一候选工作节点中的高敏感容器比例小于预设阈值的工作节点为第二候选工作节点。
19、根据本公开的实施例,所述根据所述磁盘输入输出敏感等级和所述第二候选工作节点的高敏感容器比例确定目标工作节点包括:
20、根据所述磁盘输入输出敏感等级和所述第二候选工作节点的高敏感容器比例计算所述第二候选工作节点的得分;以及
21、根据计算结果确定目标工作节点。
22、根据本公开的实施例,所述待部署应用容器的容器类型包括前端容器、后端容器、数据库容器和缓存数据库容器,所述工作节点的磁盘类型包括机械硬盘、固态硬盘和高性能固态硬盘。
23、本公开的第二方面提供了一种应用容器调度装置,所述装置包括:
24、第一确定模块,用于响应于应用容器的部署请求,确定待部署应用容器的容器类型和工作节点信息,其中,所述工作节点用于部署运行应用容器,所述工作节点信息包括工作节点的磁盘类型和高敏感容器比例,所述高敏感容器比例用于表征所述工作节点中磁盘输入输出敏感等级高的容器数量占容器总数量的比例;
25、第二确定模块,用于根据所述待部署应用容器的容器类型确定所述待部署应用容器的磁盘输入输出敏感等级;
26、目标工作节点确定模块,用于基于所述磁盅输入输出敏感等级、所述工作节点的磁盘类型和所述高敏感容器比例确定目标工作节点;以及
27、容器部署模块,用于将所述待部署应用容器部署至所述目标工作节点。
28、根据本公开的实施例,第二确定模块包括:识别子模块和第一确定子模块。
29、识别子模块,用于识别所述待部署应用容器名称中的关键字;以及
30、第一确定子模块,用于根据所述关键字确定所述待部署应用容器的磁盘输入输出敏感等级。
31、根据本公开的实施例,目标工作节点确定模块包括:第二确定子模块、第三确定子模块和第四确定子模块。
32、第二确定子模块,用于根据所述磁盘输入输出敏感等级和所述工作节点的磁盘类型确定至少一个第一候选工作节点;
33、第三确定子模块,用于根据所述第一候选工作节点的高敏感容器比例确定至少一个第二候选工作节点;以及
34、第四确定子模块,用于根据所述磁盘输入输出敏感等级和所述第二候选工作节点的高敏感容器比例确定目标工作节点。
35、根据本公开的实施例,所述第一确定子模块包括:第一确定单元和第二确定单元。
36、第一确定单元,用于根据所述磁盘输入输出敏感等级确定所述待部署应用容器对应的目标磁盘类型;以及
37、第二确定单元,用于根据所述目标磁盘类型和所述工作节点的磁盘类型确定至少一个第一候选工作节点。
38、根据本公开的实施例,所述第二确定子模块包括第三确定单元。
39、第三确定单元,用于确定所述第一候选工作节点中的高敏感容器比例小于预设阈值的工作节点为第二候选工作节点。
40、根据本公开的实施例,所述第三确定子模块包括计算单元和第四确定单元。
41、计算单元,用于根据所述磁盘输入输出敏感等级和所述第二候选工作节点的高敏感容器比例计算所述第二候选工作节点的得分;以及
42、第四确定单元,用于根据计算结果确定目标工作节点。
43、本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述应用容器调度方法。
44、本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述应用容器调度方法。
45、本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述应用容器调度方法。
46、通过本公开的实施例提供的一种应用容器调度方法,当接收到应用容器部署的请求后,确定待部署应用容器的容器类型和工作节点信息;根据所述待部署应用容器的容器类型确定所述待部署应用容器的磁盘输入输出敏感等级;基于所述磁盘输入输出敏感等级、所述工作节点的磁盘类型和所述高敏感容器比例确定目标工作节点,在目标工作节点上部署待部署应用容器以实现应用容器按照磁盘敏感程度进行调度,相较于原生的容器调度方案,基于磁盘io敏感程度及磁盘类型的k8s调度策略,能够将磁盘io敏感和不敏感的应用容器调度至同一台宿主机实现错配,减少因高io对同宿主机上其他容器的影响,也能保证容器对于磁盘类型更好地适配,减少人工效率,提升容器环境的可靠性。