本发明涉及集群服务调度,特别是指一种分布式集群服务调度方法、装置、设备、程序产品及介质。
背景技术:
1、随着云原生技术的持续发展,服务上云也成为了众多企业的选择。容器是服务上云难以绕过的门槛,而kubernetes因其优越的性能以及良好的开源生态,现已成为各个公司或厂商首选的容器编排系统。
2、现有技术通过分层调度的思想解决同一个kubernetes集群内不同服务调用的问题,但跨kubernetes服务集群分布式系统服务间的调用问题仍亟待解决。
技术实现思路
1、本发明的目的是提供一种分布式集群服务调度方法、装置、设备、程序产品及介质,解决了跨kubernetes服务集群分布式系统服务间调用的问题。
2、为达到上述目的,本发明的实施例提供一种分布式集群服务调度方法,应用于第一集群中的第一节点,包括:
3、根据获取的第一服务调用请求,获取所述第一服务的元数据信息,其中,所述第一服务调用请求用于请求调用所述第一服务,所述第一服务的元数据信息包括所述第一服务对应的至少一个第二节点的网际互连协议(internet protocol,ip)地址,所述第二节点属于所述第一集群或者属于第二集群,所述第二集群与所述第一集群为分布式部署的集群;
4、根据所述至少一个第二节点的ip地址,向所述至少一个第二节点中的第一目标节点发送第二服务调用请求,其中,所述第二服务调用请求用于请求调用所述第一服务,所述第一目标节点为所述至少一个第二节点中所述第一服务为可用状态的任意一个节点。
5、可选地,在所述根据获取的第一服务调用请求,获取所述第一服务的元数据信息之前,所述方法还包括:
6、接收所述第二节点发送的服务注册请求,其中,所述服务注册请求用于请求注册所述第一服务,所述服务注册请求携带有所述第一服务的元数据信息;
7、对所述第一服务的元数据信息进行存储。
8、可选地,所述方法还包括:
9、在第一预设时长内未获取到第二目标节点发送的所述第一服务对应的心跳包的情况下,向所述第二目标节点所在集群发送第一创建请求,其中,所述第二目标节点为所述第一服务对应的至少一个第二节点中的任意一个,所述心跳包包括第一服务的元数据信息,所述第一创建请求用于请求为所述第一服务创建一个pod。
10、可选地,所述方法还包括以下至少一项:
11、在所述第一服务对应的目标计数器的值大于或等于第一预设值的情况下,向能够提供所述第一服务的节点对应的至少一个目标集群发送扩容请求,所述扩容请求用于请求所述目标集群为所述第一服务创建至少一个目标pod,所述目标计数器的值与所述第一服务被请求调用的次数相关;
12、在所述第一服务对应的目标计数器的值等于第二预设值的情况下,向能够提供所述第一服务的节点对应的至少一个目标集群发送缩容请求,所述缩容请求用于请求所述目标集群删除所述目标pod。
13、可选地,所述方法还包括:
14、获取所述第一服务在第二预设时长内被请求调用的次数;
15、在所述次数与所述第一服务对应的pod的总数目的比值大于或等于第三预设值的情况下,将所述目标计数器的值加一;
16、在所述次数与所述第一服务对应的pod的总数目的比值小于第三预设值的情况下,将所述目标计数器的值减一。
17、为达到上述目的,本发明的实施例提供一种分布式集群服务调度方法,应用于第二节点,包括:
18、接收第一集群中的第一节点发送的第二服务调用请求,其中,所述第二节点属于所述第一集群或者属于第二集群,所述第二集群与所述第一集群为分布式部署的集群,所述第二服务调用请求用于请求调用第一服务;
19、根据所述第二服务调用请求,对所述第一服务进行调用。
20、可选地,所述方法还包括:
21、向所述第一节点发送服务注册请求,其中,所述服务注册请求用于请求注册所述第一服务,所述服务注册请求携带有所述第一服务的元数据信息。
22、为达到上述目的,本发明的实施例提供一种分布式集群服务调度装置,应用于第一集群中的第一节点,包括:
23、第一处理模块,用于根据获取的第一服务调用请求,获取所述第一服务的元数据信息,其中,所述第一服务调用请求用于请求调用所述第一服务,所述第一服务的元数据信息包括所述第一服务对应的至少一个第二节点的网际互连协议ip地址,所述第二节点属于所述第一集群或者属于第二集群,所述第二集群与所述第一集群为分布式部署的集群;
24、第二处理模块,用于根据所述至少一个第二节点的ip地址,向所述至少一个第二节点中的第一目标节点发送第二服务调用请求,其中,所述第二服务调用请求用于请求调用所述第一服务,所述第一目标节点为所述至少一个第二节点中所述第一服务为可用状态的任意一个节点。
25、可选地,所述装置还包括:
26、第一接收模块,用于接收所述第二节点发送的服务注册请求,其中,所述服务注册请求用于请求注册所述第一服务,所述服务注册请求携带有所述第一服务的元数据信息;
27、信息存储模块,用于对所述第一服务的元数据信息进行存储。
28、可选地,所述装置还包括:
29、第一发送模块,用于在第一预设时长内未获取到第二目标节点发送的所述第一服务对应的心跳包的情况下,向所述第二目标节点所在集群发送第一创建请求,其中,所述第二目标节点为所述第一服务对应的至少一个第二节点中的任意一个,所述心跳包包括第一服务的元数据信息,所述第一创建请求用于请求为所述第一服务创建一个pod。
30、可选地,所述装置还包括以下至少一项:
31、扩容模块,用于在所述第一服务对应的目标计数器的值大于或等于第一预设值的情况下,向能够提供所述第一服务的节点对应的至少一个目标集群发送扩容请求,所述扩容请求用于请求所述目标集群为所述第一服务创建至少一个目标pod,所述目标计数器的值与所述第一服务被请求调用的次数相关;
32、缩容模块,用于在所述第一服务对应的目标计数器的值等于第二预设值的情况下,向能够提供所述第一服务的节点对应的至少一个目标集群发送缩容请求,所述缩容请求用于请求所述目标集群删除所述目标pod。
33、可选地,所述装置还包括:
34、第一获取模块,用于获取所述第一服务在第二预设时长内被请求调用的次数;
35、第一计数模块,用于在所述次数与所述第一服务对应的pod的总数目的比值大于或等于第三预设值的情况下,将所述目标计数器的值加一;
36、第二计数模块,用于在所述次数与所述第一服务对应的pod的总数目的比值小于第三预设值的情况下,将所述目标计数器的值减一。
37、为达到上述目的,本发明的实施例提供一种分布式集群服务调度装置,应用于第二节点,包括:
38、请求接收模块,用于接收第一集群中的第一节点发送的第二服务调用请求,其中,所述第二节点属于所述第一集群或者属于第二集群,所述第二集群与所述第一集群为分布式部署的集群,所述第二服务调用请求用于请求调用第一服务;
39、服务调用模块,用于根据所述第二服务调用请求,对所述第一服务进行调用。
40、可选地,所述装置还包括:
41、第二发送模块,用于向所述第一节点发送服务注册请求,其中,所述服务注册请求用于请求注册所述第一服务,所述服务注册请求携带有所述第一服务的元数据信息。
42、为达到上述目的,本发明的实施例提供一种设备,所述设备为第一集群中的第一节点,包括处理器和收发机,其中,所述处理器用于:
43、根据获取的第一服务调用请求,获取所述第一服务的元数据信息,其中,所述第一服务调用请求用于请求调用所述第一服务,所述第一服务的元数据信息包括所述第一服务对应的至少一个第二节点的网际互连协议ip地址,所述第二节点属于所述第一集群或者属于第二集群,所述第二集群与所述第一集群为分布式部署的集群;
44、根据所述至少一个第二节点的ip地址,向所述至少一个第二节点中的第一目标节点发送第二服务调用请求,其中,所述第二服务调用请求用于请求调用所述第一服务,所述第一目标节点为所述至少一个第二节点中所述第一服务为可用状态的任意一个节点。
45、可选地,所述收发机还用于:接收所述第二节点发送的服务注册请求,其中,所述服务注册请求用于请求注册所述第一服务,所述服务注册请求携带有所述第一服务的元数据信息;
46、所述处理器还用于:对所述第一服务的元数据信息进行存储。
47、可选地,所述处理器还用于:
48、在第一预设时长内未获取到第二目标节点发送的所述第一服务对应的心跳包的情况下,向所述第二目标节点所在集群发送第一创建请求,其中,所述第二目标节点为所述第一服务对应的至少一个第二节点中的任意一个,所述心跳包包括第一服务的元数据信息,所述第一创建请求用于请求为所述第一服务创建一个pod。
49、可选地,所述处理器还用于执行以下至少一项:
50、在所述第一服务对应的目标计数器的值大于或等于第一预设值的情况下,向能够提供所述第一服务的节点对应的至少一个目标集群发送扩容请求,所述扩容请求用于请求所述目标集群为所述第一服务创建至少一个目标pod,所述目标计数器的值与所述第一服务被请求调用的次数相关;
51、在所述第一服务对应的目标计数器的值等于第二预设值的情况下,向能够提供所述第一服务的节点对应的至少一个目标集群发送缩容请求,所述缩容请求用于请求所述目标集群删除所述目标pod。
52、可选地,所述处理器还用于:
53、获取所述第一服务在第二预设时长内被请求调用的次数;
54、在所述次数与所述第一服务对应的pod的总数目的比值大于或等于第三预设值的情况下,将所述目标计数器的值加一;
55、在所述次数与所述第一服务对应的pod的总数目的比值小于第三预设值的情况下,将所述目标计数器的值减一。
56、为达到上述目的,本发明的实施例提供一种设备,所述设备为第二节点,包括处理器和收发机,其中,所述收发机用于接收第一集群中的第一节点发送的第二服务调用请求,其中,所述第二节点属于所述第一集群或者属于第二集群,所述第二集群与所述第一集群为分布式部署的集群,所述第二服务调用请求用于请求调用第一服务;
57、所述处理器用于根据所述第二服务调用请求,对所述第一服务进行调用。
58、可选地,所述收发机还用于:
59、向所述第一节点发送服务注册请求,其中,所述服务注册请求用于请求注册所述第一服务,所述服务注册请求携带有所述第一服务的元数据信息。
60、为达到上述目的,本发明的实施例提供一种设备,包括收发机、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;所述处理器执行程序或指令时实现如上应用第一节点的分布式集群服务调度方法,或者实现如上应用于第二节点的分布式集群服务调度方法。
61、为达到上述目的,提供一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如上应用第一节点的分布式集群服务调度方法的步骤,或者实现如上应用于第二节点的分布式集群服务调度方法的步骤。
62、为达到上述目的,本发明的实施例提供一种可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时实现如上应用第一节点的分布式集群服务调度方法中的步骤,或者如上应用于第二节点的分布式集群服务调度方法中的步骤。
63、本发明的上述技术方案的有益效果如下:
64、本发明实施例的方法,可以根据获取的第一服务调用请求查询得到第一服务的元数据信息,第一服务的元数据信息包括第一服务对应的至少一个第二节点的ip地址,这样,可以根据至少一个第二节点的ip地址,向至少一个第二节点中第一服务为可用状态的第一目标节点发送第二服务调用请求,以调用第一目标节点上的第一服务。其中,第二节点可以是第一集群中的节点,也可以是其他集群中的节点,实现了跨kubernetes服务集群的服务调用。