本技术涉及资源调度,特别涉及一种资源调度方法、装置、设备、介质及程序产品。
背景技术:
1、在云计算领域中,kubernetes已经成为了容器编排领域的事实标准,而kubernetes调度器作为容器编排中的重要一环,即为容器选择一个合适的节点运行,为容器正常运行提供了保障。redis采用容器化方式部署时,一个redis通常会有主备、多分片的情况,即一个实例包含多个pod,而一个实例中pod的分布对整个实例性能也有比较大的影响,然而,相关技术中调度过程是以单个pod考量的,从而导致资源调度的效果较差。
技术实现思路
1、本技术实施例提供一种资源调度方法、装置、设备、介质及程序产品,以解决相关资源调度的效果较差的问题。
2、为解决上述技术问题,本技术是这样实现的:
3、第一方面,本技术实施例提供一种资源调度方法,包括:
4、对多个实例中的每个pod分别标识对应的实例标识id、分片id和pod id标签;
5、确定所述多个实例的pod中待调度pod对应的目标节点,所述目标节点为基于奖励函数确定的多个节点中奖励值最高的节点;
6、其中,所述奖励函数用于基于所述每个pod对应的标签确定多个节点的奖励值,所述多个节点包括所述目标节点。
7、可选地,所述确定所述多个实例的pod中待调度pod对应的目标节点,包括:
8、基于深度强化学习算法搭建神经网络;
9、对所述神经网络进行迭代训练,得到目标神经网络模型;
10、基于所述目标神经网络模型中的奖励函数确定多个节点的奖励值;
11、基于所述多个节点的奖励值确定待调度pod对应的目标节点。
12、可选地,所述基于所述目标神经网络模型中的奖励函数确定多个节点的奖励值,包括:
13、基于第i个节点的资源可分配总量和所述第i个节点上已部署pod资源占有量总和,确定第一向量,所述第一向量用于指示所述第i个节点的资源使用率,所述第i个节点为所述多个节点中的任意一个节点,i为大于0的整数;
14、基于待调度pod的资源需求量与所述资源可分配总量,确定第二向量,所述第二向量用于指示待调度pod的资源需求量与所述资源可分配总量的比例;
15、确定所述第一向量和所述第二向量的差异值,所述差异值用于指示所述待调度pod与所述第i个节点上已部署pod的资源冲突程度;
16、基于所述每个pod对应的标签,确定所述第i个节点的第一值;
17、基于所述差异值与所述第一值,确定所述第i个节点的奖励值。
18、可选地,所述基于所述差异值与所述第一值,确定所述第i个节点的奖励值,包括:
19、基于所述待调度pod对应的同类pod的差异值确定第二值,所述第二值用于指示所述同类pod的差异不均衡程度;
20、基于集群中多个节点的资源使用率确定第三值,所述第三值用于指示集群负载均衡程度;
21、基于所述差异值、所述第一值、所述第二值和所述第三值确定所述第i个节点的奖励值。
22、可选地,所述对所述神经网络进行迭代训练,得到目标神经网络模型,包括:
23、采用所述神经网络运行第一预设次数的调度;
24、确定每次调度对应的集群状态、动作、动作概率和奖励;
25、利用广义优势估计gae方法计算优势值;
26、基于所述集群状态、动作、动作概率、奖励和优势值,对所述神经网络进行第二预设次数的更新;
27、在采用所述神经网络运行完第三预设次数的调度的情况下,完成对所述神经网络的训练,得到目标神经网络模型。
28、可选地,所述方法还包括:
29、将所述神经网络的输出中无效动作对应的动作概率设为预设值。
30、可选地,所述集群状态包括如下至少一项:
31、集群中节点的剩余可分配的中央处理器cpu和内存资源量、磁盘流入和流出io的剩余可使用速率量、网络流入和流出io的剩余可使用速率量、节点的资源使用量。
32、第二方面,本技术实施例提供一种资源调度装置,包括:
33、标识模块,用于对多个实例中的每个pod分别标识对应的实例标识id、分片id和pod id标签;
34、确定模块,用于确定所述多个实例的pod中待调度pod对应的目标节点,所述目标节点为基于奖励函数确定的多个节点中奖励值最高的节点;
35、其中,所述奖励函数用于基于所述每个pod对应的标签确定多个节点的奖励值,所述多个节点包括所述目标节点。
36、可选地,所述确定模块包括:
37、搭建单元,用于基于深度强化学习算法搭建神经网络;
38、训练单元,用于对所述神经网络进行迭代训练,得到目标神经网络模型;
39、第一确定单元,用于基于所述目标神经网络模型中的奖励函数确定多个节点的奖励值;
40、第二确定单元,用于基于所述多个节点的奖励值确定待调度pod对应的目标节点。
41、可选地,所述第一确定单元具体用于:
42、基于第i个节点的资源可分配总量和所述第i个节点上已部署pod资源占有量总和,确定第一向量,所述第一向量用于指示所述第i个节点的资源使用率,所述第i个节点为所述多个节点中的任意一个节点,i为大于0的整数;
43、基于待调度pod的资源需求量与所述资源可分配总量,确定第二向量,所述第二向量用于指示待调度pod的资源需求量与所述资源可分配总量的比例;
44、确定所述第一向量和所述第二向量的差异值,所述差异值用于指示所述待调度pod与所述第i个节点上已部署pod的资源冲突程度;
45、基于所述每个pod对应的标签,确定所述第i个节点的第一值;
46、基于所述差异值与所述第一值,确定所述第i个节点的奖励值。
47、可选地,所述基于所述差异值与所述第一值,确定所述第i个节点的奖励值,包括:
48、基于所述待调度pod对应的同类pod的差异值确定第二值,所述第二值用于指示所述同类pod的差异不均衡程度;
49、基于集群中多个节点的资源使用率确定第三值,所述第三值用于指示集群负载均衡程度;
50、基于所述差异值、所述第一值、所述第二值和所述第三值确定所述第i个节点的奖励值。
51、可选地,所述训练单元具体用于:
52、采用所述神经网络运行第一预设次数的调度;
53、确定每次调度对应的集群状态、动作、动作概率和奖励;
54、利用广义优势估计gae方法计算优势值;
55、基于所述集群状态、动作、动作概率、奖励和优势值,对所述神经网络进行第二预设次数的更新;
56、在采用所述神经网络运行完第三预设次数的调度的情况下,完成对所述神经网络的训练,得到目标神经网络模型。
57、可选地,所述训练单元还用于:
58、将所述神经网络的输出中无效动作对应的动作概率设为预设值。
59、可选地,所述集群状态包括如下至少一项:
60、集群中节点的剩余可分配的中央处理器cpu和内存资源量、磁盘流入和流出io的剩余可使用速率量、网络流入和流出io的剩余可使用速率量、节点的资源使用量。
61、第三方面,本技术实施例提供一种电子设备,包括收发机和处理器,所述处理器用于:
62、对多个实例中的每个pod分别标识对应的实例标识id、分片id和pod id标签;
63、确定所述多个实例的pod中待调度pod对应的目标节点,所述目标节点为基于奖励函数确定的多个节点中奖励值最高的节点;
64、其中,所述奖励函数用于基于所述每个pod对应的标签确定多个节点的奖励值,所述多个节点包括所述目标节点。
65、可选地,所述处理器具体用于:
66、基于深度强化学习算法搭建神经网络;
67、对所述神经网络进行迭代训练,得到目标神经网络模型;
68、基于所述目标神经网络模型中的奖励函数确定多个节点的奖励值;
69、基于所述多个节点的奖励值确定待调度pod对应的目标节点。
70、可选地,所述处理器具体用于:
71、基于第i个节点的资源可分配总量和所述第i个节点上已部署pod资源占有量总和,确定第一向量,所述第一向量用于指示所述第i个节点的资源使用率,所述第i个节点为所述多个节点中的任意一个节点,i为大于0的整数;
72、基于待调度pod的资源需求量与所述资源可分配总量,确定第二向量,所述第二向量用于指示待调度pod的资源需求量与所述资源可分配总量的比例;
73、确定所述第一向量和所述第二向量的差异值,所述差异值用于指示所述待调度pod与所述第i个节点上已部署pod的资源冲突程度;
74、基于所述每个pod对应的标签,确定所述第i个节点的第一值;
75、基于所述差异值与所述第一值,确定所述第i个节点的奖励值。
76、可选地,所述处理器具体用于:
77、基于所述待调度pod对应的同类pod的差异值确定第二值,所述第二值用于指示所述同类pod的差异不均衡程度;
78、基于集群中多个节点的资源使用率确定第三值,所述第三值用于指示集群负载均衡程度;
79、基于所述差异值、所述第一值、所述第二值和所述第三值确定所述第i个节点的奖励值。
80、可选地,所述处理器具体用于:
81、采用所述神经网络运行第一预设次数的调度;
82、确定每次调度对应的集群状态、动作、动作概率和奖励;
83、利用广义优势估计gae方法计算优势值;
84、基于所述集群状态、动作、动作概率、奖励和优势值,对所述神经网络进行第二预设次数的更新;
85、在采用所述神经网络运行完第三预设次数的调度的情况下,完成对所述神经网络的训练,得到目标神经网络模型。
86、可选地,所述处理器具体用于:
87、将所述神经网络的输出中无效动作对应的动作概率设为预设值。
88、可选地,所述集群状态包括如下至少一项:
89、集群中节点的剩余可分配的中央处理器cpu和内存资源量、磁盘流入和流出io的剩余可使用速率量、网络流入和流出io的剩余可使用速率量、节点的资源使用量。
90、第四方面,本技术实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如上述第一方面所述的资源调度方法的步骤。
91、第五方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的资源调度方法的步骤。
92、第六方面,本技术实施例提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如上述第一方面所述的资源调度方法的步骤。
93、本技术实施例中,上述资源调度方法可以对多个实例中的每个pod分别标识对应的实例标识id、分片id和pod id标签,并确定所述多个实例的pod中待调度pod对应的目标节点,所述目标节点为基于奖励函数确定的多个节点中奖励值最高的节点,所述奖励函数用于基于所述每个pod对应的标签确定多个节点的奖励值,所述多个节点包括所述目标节点,使得可以在调度过程中考虑到一个redis实例多pod间的关系,是面向实例级别的调度,调度结果也更加适用于redis实例,从而能够提高资源调度的效果。