本發(fā)明涉及集群服務(wù)調(diào)度,特別是指一種分布式集群服務(wù)調(diào)度方法、裝置、設(shè)備、程序產(chǎn)品及介質(zhì)。
背景技術(shù):
1、隨著云原生技術(shù)的持續(xù)發(fā)展,服務(wù)上云也成為了眾多企業(yè)的選擇。容器是服務(wù)上云難以繞過(guò)的門(mén)檻,而kubernetes因其優(yōu)越的性能以及良好的開(kāi)源生態(tài),現(xiàn)已成為各個(gè)公司或廠商首選的容器編排系統(tǒng)。
2、現(xiàn)有技術(shù)通過(guò)分層調(diào)度的思想解決同一個(gè)kubernetes集群內(nèi)不同服務(wù)調(diào)用的問(wèn)題,但跨kubernetes服務(wù)集群分布式系統(tǒng)服務(wù)間的調(diào)用問(wèn)題仍亟待解決。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是提供一種分布式集群服務(wù)調(diào)度方法、裝置、設(shè)備、程序產(chǎn)品及介質(zhì),解決了跨kubernetes服務(wù)集群分布式系統(tǒng)服務(wù)間調(diào)用的問(wèn)題。
2、為達(dá)到上述目的,本發(fā)明的實(shí)施例提供一種分布式集群服務(wù)調(diào)度方法,應(yīng)用于第一集群中的第一節(jié)點(diǎn),包括:
3、根據(jù)獲取的第一服務(wù)調(diào)用請(qǐng)求,獲取所述第一服務(wù)的元數(shù)據(jù)信息,其中,所述第一服務(wù)調(diào)用請(qǐng)求用于請(qǐng)求調(diào)用所述第一服務(wù),所述第一服務(wù)的元數(shù)據(jù)信息包括所述第一服務(wù)對(duì)應(yīng)的至少一個(gè)第二節(jié)點(diǎn)的網(wǎng)際互連協(xié)議(internet?protocol,ip)地址,所述第二節(jié)點(diǎn)屬于所述第一集群或者屬于第二集群,所述第二集群與所述第一集群為分布式部署的集群;
4、根據(jù)所述至少一個(gè)第二節(jié)點(diǎn)的ip地址,向所述至少一個(gè)第二節(jié)點(diǎn)中的第一目標(biāo)節(jié)點(diǎn)發(fā)送第二服務(wù)調(diào)用請(qǐng)求,其中,所述第二服務(wù)調(diào)用請(qǐng)求用于請(qǐng)求調(diào)用所述第一服務(wù),所述第一目標(biāo)節(jié)點(diǎn)為所述至少一個(gè)第二節(jié)點(diǎn)中所述第一服務(wù)為可用狀態(tài)的任意一個(gè)節(jié)點(diǎn)。
5、可選地,在所述根據(jù)獲取的第一服務(wù)調(diào)用請(qǐng)求,獲取所述第一服務(wù)的元數(shù)據(jù)信息之前,所述方法還包括:
6、接收所述第二節(jié)點(diǎn)發(fā)送的服務(wù)注冊(cè)請(qǐng)求,其中,所述服務(wù)注冊(cè)請(qǐng)求用于請(qǐng)求注冊(cè)所述第一服務(wù),所述服務(wù)注冊(cè)請(qǐng)求攜帶有所述第一服務(wù)的元數(shù)據(jù)信息;
7、對(duì)所述第一服務(wù)的元數(shù)據(jù)信息進(jìn)行存儲(chǔ)。
8、可選地,所述方法還包括:
9、在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未獲取到第二目標(biāo)節(jié)點(diǎn)發(fā)送的所述第一服務(wù)對(duì)應(yīng)的心跳包的情況下,向所述第二目標(biāo)節(jié)點(diǎn)所在集群發(fā)送第一創(chuàng)建請(qǐng)求,其中,所述第二目標(biāo)節(jié)點(diǎn)為所述第一服務(wù)對(duì)應(yīng)的至少一個(gè)第二節(jié)點(diǎn)中的任意一個(gè),所述心跳包包括第一服務(wù)的元數(shù)據(jù)信息,所述第一創(chuàng)建請(qǐng)求用于請(qǐng)求為所述第一服務(wù)創(chuàng)建一個(gè)pod。
10、可選地,所述方法還包括以下至少一項(xiàng):
11、在所述第一服務(wù)對(duì)應(yīng)的目標(biāo)計(jì)數(shù)器的值大于或等于第一預(yù)設(shè)值的情況下,向能夠提供所述第一服務(wù)的節(jié)點(diǎn)對(duì)應(yīng)的至少一個(gè)目標(biāo)集群發(fā)送擴(kuò)容請(qǐng)求,所述擴(kuò)容請(qǐng)求用于請(qǐng)求所述目標(biāo)集群為所述第一服務(wù)創(chuàng)建至少一個(gè)目標(biāo)pod,所述目標(biāo)計(jì)數(shù)器的值與所述第一服務(wù)被請(qǐng)求調(diào)用的次數(shù)相關(guān);
12、在所述第一服務(wù)對(duì)應(yīng)的目標(biāo)計(jì)數(shù)器的值等于第二預(yù)設(shè)值的情況下,向能夠提供所述第一服務(wù)的節(jié)點(diǎn)對(duì)應(yīng)的至少一個(gè)目標(biāo)集群發(fā)送縮容請(qǐng)求,所述縮容請(qǐng)求用于請(qǐng)求所述目標(biāo)集群刪除所述目標(biāo)pod。
13、可選地,所述方法還包括:
14、獲取所述第一服務(wù)在第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)被請(qǐng)求調(diào)用的次數(shù);
15、在所述次數(shù)與所述第一服務(wù)對(duì)應(yīng)的pod的總數(shù)目的比值大于或等于第三預(yù)設(shè)值的情況下,將所述目標(biāo)計(jì)數(shù)器的值加一;
16、在所述次數(shù)與所述第一服務(wù)對(duì)應(yīng)的pod的總數(shù)目的比值小于第三預(yù)設(shè)值的情況下,將所述目標(biāo)計(jì)數(shù)器的值減一。
17、為達(dá)到上述目的,本發(fā)明的實(shí)施例提供一種分布式集群服務(wù)調(diào)度方法,應(yīng)用于第二節(jié)點(diǎn),包括:
18、接收第一集群中的第一節(jié)點(diǎn)發(fā)送的第二服務(wù)調(diào)用請(qǐng)求,其中,所述第二節(jié)點(diǎn)屬于所述第一集群或者屬于第二集群,所述第二集群與所述第一集群為分布式部署的集群,所述第二服務(wù)調(diào)用請(qǐng)求用于請(qǐng)求調(diào)用第一服務(wù);
19、根據(jù)所述第二服務(wù)調(diào)用請(qǐng)求,對(duì)所述第一服務(wù)進(jìn)行調(diào)用。
20、可選地,所述方法還包括:
21、向所述第一節(jié)點(diǎn)發(fā)送服務(wù)注冊(cè)請(qǐng)求,其中,所述服務(wù)注冊(cè)請(qǐng)求用于請(qǐng)求注冊(cè)所述第一服務(wù),所述服務(wù)注冊(cè)請(qǐng)求攜帶有所述第一服務(wù)的元數(shù)據(jù)信息。
22、為達(dá)到上述目的,本發(fā)明的實(shí)施例提供一種分布式集群服務(wù)調(diào)度裝置,應(yīng)用于第一集群中的第一節(jié)點(diǎn),包括:
23、第一處理模塊,用于根據(jù)獲取的第一服務(wù)調(diào)用請(qǐng)求,獲取所述第一服務(wù)的元數(shù)據(jù)信息,其中,所述第一服務(wù)調(diào)用請(qǐng)求用于請(qǐng)求調(diào)用所述第一服務(wù),所述第一服務(wù)的元數(shù)據(jù)信息包括所述第一服務(wù)對(duì)應(yīng)的至少一個(gè)第二節(jié)點(diǎn)的網(wǎng)際互連協(xié)議ip地址,所述第二節(jié)點(diǎn)屬于所述第一集群或者屬于第二集群,所述第二集群與所述第一集群為分布式部署的集群;
24、第二處理模塊,用于根據(jù)所述至少一個(gè)第二節(jié)點(diǎn)的ip地址,向所述至少一個(gè)第二節(jié)點(diǎn)中的第一目標(biāo)節(jié)點(diǎn)發(fā)送第二服務(wù)調(diào)用請(qǐng)求,其中,所述第二服務(wù)調(diào)用請(qǐng)求用于請(qǐng)求調(diào)用所述第一服務(wù),所述第一目標(biāo)節(jié)點(diǎn)為所述至少一個(gè)第二節(jié)點(diǎn)中所述第一服務(wù)為可用狀態(tài)的任意一個(gè)節(jié)點(diǎn)。
25、可選地,所述裝置還包括:
26、第一接收模塊,用于接收所述第二節(jié)點(diǎn)發(fā)送的服務(wù)注冊(cè)請(qǐng)求,其中,所述服務(wù)注冊(cè)請(qǐng)求用于請(qǐng)求注冊(cè)所述第一服務(wù),所述服務(wù)注冊(cè)請(qǐng)求攜帶有所述第一服務(wù)的元數(shù)據(jù)信息;
27、信息存儲(chǔ)模塊,用于對(duì)所述第一服務(wù)的元數(shù)據(jù)信息進(jìn)行存儲(chǔ)。
28、可選地,所述裝置還包括:
29、第一發(fā)送模塊,用于在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未獲取到第二目標(biāo)節(jié)點(diǎn)發(fā)送的所述第一服務(wù)對(duì)應(yīng)的心跳包的情況下,向所述第二目標(biāo)節(jié)點(diǎn)所在集群發(fā)送第一創(chuàng)建請(qǐng)求,其中,所述第二目標(biāo)節(jié)點(diǎn)為所述第一服務(wù)對(duì)應(yīng)的至少一個(gè)第二節(jié)點(diǎn)中的任意一個(gè),所述心跳包包括第一服務(wù)的元數(shù)據(jù)信息,所述第一創(chuàng)建請(qǐng)求用于請(qǐng)求為所述第一服務(wù)創(chuàng)建一個(gè)pod。
30、可選地,所述裝置還包括以下至少一項(xiàng):
31、擴(kuò)容模塊,用于在所述第一服務(wù)對(duì)應(yīng)的目標(biāo)計(jì)數(shù)器的值大于或等于第一預(yù)設(shè)值的情況下,向能夠提供所述第一服務(wù)的節(jié)點(diǎn)對(duì)應(yīng)的至少一個(gè)目標(biāo)集群發(fā)送擴(kuò)容請(qǐng)求,所述擴(kuò)容請(qǐng)求用于請(qǐng)求所述目標(biāo)集群為所述第一服務(wù)創(chuàng)建至少一個(gè)目標(biāo)pod,所述目標(biāo)計(jì)數(shù)器的值與所述第一服務(wù)被請(qǐng)求調(diào)用的次數(shù)相關(guān);
32、縮容模塊,用于在所述第一服務(wù)對(duì)應(yīng)的目標(biāo)計(jì)數(shù)器的值等于第二預(yù)設(shè)值的情況下,向能夠提供所述第一服務(wù)的節(jié)點(diǎn)對(duì)應(yīng)的至少一個(gè)目標(biāo)集群發(fā)送縮容請(qǐng)求,所述縮容請(qǐng)求用于請(qǐng)求所述目標(biāo)集群刪除所述目標(biāo)pod。
33、可選地,所述裝置還包括:
34、第一獲取模塊,用于獲取所述第一服務(wù)在第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)被請(qǐng)求調(diào)用的次數(shù);
35、第一計(jì)數(shù)模塊,用于在所述次數(shù)與所述第一服務(wù)對(duì)應(yīng)的pod的總數(shù)目的比值大于或等于第三預(yù)設(shè)值的情況下,將所述目標(biāo)計(jì)數(shù)器的值加一;
36、第二計(jì)數(shù)模塊,用于在所述次數(shù)與所述第一服務(wù)對(duì)應(yīng)的pod的總數(shù)目的比值小于第三預(yù)設(shè)值的情況下,將所述目標(biāo)計(jì)數(shù)器的值減一。
37、為達(dá)到上述目的,本發(fā)明的實(shí)施例提供一種分布式集群服務(wù)調(diào)度裝置,應(yīng)用于第二節(jié)點(diǎn),包括:
38、請(qǐng)求接收模塊,用于接收第一集群中的第一節(jié)點(diǎn)發(fā)送的第二服務(wù)調(diào)用請(qǐng)求,其中,所述第二節(jié)點(diǎn)屬于所述第一集群或者屬于第二集群,所述第二集群與所述第一集群為分布式部署的集群,所述第二服務(wù)調(diào)用請(qǐng)求用于請(qǐng)求調(diào)用第一服務(wù);
39、服務(wù)調(diào)用模塊,用于根據(jù)所述第二服務(wù)調(diào)用請(qǐng)求,對(duì)所述第一服務(wù)進(jìn)行調(diào)用。
40、可選地,所述裝置還包括:
41、第二發(fā)送模塊,用于向所述第一節(jié)點(diǎn)發(fā)送服務(wù)注冊(cè)請(qǐng)求,其中,所述服務(wù)注冊(cè)請(qǐng)求用于請(qǐng)求注冊(cè)所述第一服務(wù),所述服務(wù)注冊(cè)請(qǐng)求攜帶有所述第一服務(wù)的元數(shù)據(jù)信息。
42、為達(dá)到上述目的,本發(fā)明的實(shí)施例提供一種設(shè)備,所述設(shè)備為第一集群中的第一節(jié)點(diǎn),包括處理器和收發(fā)機(jī),其中,所述處理器用于:
43、根據(jù)獲取的第一服務(wù)調(diào)用請(qǐng)求,獲取所述第一服務(wù)的元數(shù)據(jù)信息,其中,所述第一服務(wù)調(diào)用請(qǐng)求用于請(qǐng)求調(diào)用所述第一服務(wù),所述第一服務(wù)的元數(shù)據(jù)信息包括所述第一服務(wù)對(duì)應(yīng)的至少一個(gè)第二節(jié)點(diǎn)的網(wǎng)際互連協(xié)議ip地址,所述第二節(jié)點(diǎn)屬于所述第一集群或者屬于第二集群,所述第二集群與所述第一集群為分布式部署的集群;
44、根據(jù)所述至少一個(gè)第二節(jié)點(diǎn)的ip地址,向所述至少一個(gè)第二節(jié)點(diǎn)中的第一目標(biāo)節(jié)點(diǎn)發(fā)送第二服務(wù)調(diào)用請(qǐng)求,其中,所述第二服務(wù)調(diào)用請(qǐng)求用于請(qǐng)求調(diào)用所述第一服務(wù),所述第一目標(biāo)節(jié)點(diǎn)為所述至少一個(gè)第二節(jié)點(diǎn)中所述第一服務(wù)為可用狀態(tài)的任意一個(gè)節(jié)點(diǎn)。
45、可選地,所述收發(fā)機(jī)還用于:接收所述第二節(jié)點(diǎn)發(fā)送的服務(wù)注冊(cè)請(qǐng)求,其中,所述服務(wù)注冊(cè)請(qǐng)求用于請(qǐng)求注冊(cè)所述第一服務(wù),所述服務(wù)注冊(cè)請(qǐng)求攜帶有所述第一服務(wù)的元數(shù)據(jù)信息;
46、所述處理器還用于:對(duì)所述第一服務(wù)的元數(shù)據(jù)信息進(jìn)行存儲(chǔ)。
47、可選地,所述處理器還用于:
48、在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未獲取到第二目標(biāo)節(jié)點(diǎn)發(fā)送的所述第一服務(wù)對(duì)應(yīng)的心跳包的情況下,向所述第二目標(biāo)節(jié)點(diǎn)所在集群發(fā)送第一創(chuàng)建請(qǐng)求,其中,所述第二目標(biāo)節(jié)點(diǎn)為所述第一服務(wù)對(duì)應(yīng)的至少一個(gè)第二節(jié)點(diǎn)中的任意一個(gè),所述心跳包包括第一服務(wù)的元數(shù)據(jù)信息,所述第一創(chuàng)建請(qǐng)求用于請(qǐng)求為所述第一服務(wù)創(chuàng)建一個(gè)pod。
49、可選地,所述處理器還用于執(zhí)行以下至少一項(xiàng):
50、在所述第一服務(wù)對(duì)應(yīng)的目標(biāo)計(jì)數(shù)器的值大于或等于第一預(yù)設(shè)值的情況下,向能夠提供所述第一服務(wù)的節(jié)點(diǎn)對(duì)應(yīng)的至少一個(gè)目標(biāo)集群發(fā)送擴(kuò)容請(qǐng)求,所述擴(kuò)容請(qǐng)求用于請(qǐng)求所述目標(biāo)集群為所述第一服務(wù)創(chuàng)建至少一個(gè)目標(biāo)pod,所述目標(biāo)計(jì)數(shù)器的值與所述第一服務(wù)被請(qǐng)求調(diào)用的次數(shù)相關(guān);
51、在所述第一服務(wù)對(duì)應(yīng)的目標(biāo)計(jì)數(shù)器的值等于第二預(yù)設(shè)值的情況下,向能夠提供所述第一服務(wù)的節(jié)點(diǎn)對(duì)應(yīng)的至少一個(gè)目標(biāo)集群發(fā)送縮容請(qǐng)求,所述縮容請(qǐng)求用于請(qǐng)求所述目標(biāo)集群刪除所述目標(biāo)pod。
52、可選地,所述處理器還用于:
53、獲取所述第一服務(wù)在第二預(yù)設(shè)時(shí)長(zhǎng)內(nèi)被請(qǐng)求調(diào)用的次數(shù);
54、在所述次數(shù)與所述第一服務(wù)對(duì)應(yīng)的pod的總數(shù)目的比值大于或等于第三預(yù)設(shè)值的情況下,將所述目標(biāo)計(jì)數(shù)器的值加一;
55、在所述次數(shù)與所述第一服務(wù)對(duì)應(yīng)的pod的總數(shù)目的比值小于第三預(yù)設(shè)值的情況下,將所述目標(biāo)計(jì)數(shù)器的值減一。
56、為達(dá)到上述目的,本發(fā)明的實(shí)施例提供一種設(shè)備,所述設(shè)備為第二節(jié)點(diǎn),包括處理器和收發(fā)機(jī),其中,所述收發(fā)機(jī)用于接收第一集群中的第一節(jié)點(diǎn)發(fā)送的第二服務(wù)調(diào)用請(qǐng)求,其中,所述第二節(jié)點(diǎn)屬于所述第一集群或者屬于第二集群,所述第二集群與所述第一集群為分布式部署的集群,所述第二服務(wù)調(diào)用請(qǐng)求用于請(qǐng)求調(diào)用第一服務(wù);
57、所述處理器用于根據(jù)所述第二服務(wù)調(diào)用請(qǐng)求,對(duì)所述第一服務(wù)進(jìn)行調(diào)用。
58、可選地,所述收發(fā)機(jī)還用于:
59、向所述第一節(jié)點(diǎn)發(fā)送服務(wù)注冊(cè)請(qǐng)求,其中,所述服務(wù)注冊(cè)請(qǐng)求用于請(qǐng)求注冊(cè)所述第一服務(wù),所述服務(wù)注冊(cè)請(qǐng)求攜帶有所述第一服務(wù)的元數(shù)據(jù)信息。
60、為達(dá)到上述目的,本發(fā)明的實(shí)施例提供一種設(shè)備,包括收發(fā)機(jī)、處理器、存儲(chǔ)器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的程序或指令;所述處理器執(zhí)行程序或指令時(shí)實(shí)現(xiàn)如上應(yīng)用第一節(jié)點(diǎn)的分布式集群服務(wù)調(diào)度方法,或者實(shí)現(xiàn)如上應(yīng)用于第二節(jié)點(diǎn)的分布式集群服務(wù)調(diào)度方法。
61、為達(dá)到上述目的,提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)指令,該計(jì)算機(jī)指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上應(yīng)用第一節(jié)點(diǎn)的分布式集群服務(wù)調(diào)度方法的步驟,或者實(shí)現(xiàn)如上應(yīng)用于第二節(jié)點(diǎn)的分布式集群服務(wù)調(diào)度方法的步驟。
62、為達(dá)到上述目的,本發(fā)明的實(shí)施例提供一種可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有程序或指令,所述程序或指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上應(yīng)用第一節(jié)點(diǎn)的分布式集群服務(wù)調(diào)度方法中的步驟,或者如上應(yīng)用于第二節(jié)點(diǎn)的分布式集群服務(wù)調(diào)度方法中的步驟。
63、本發(fā)明的上述技術(shù)方案的有益效果如下:
64、本發(fā)明實(shí)施例的方法,可以根據(jù)獲取的第一服務(wù)調(diào)用請(qǐng)求查詢得到第一服務(wù)的元數(shù)據(jù)信息,第一服務(wù)的元數(shù)據(jù)信息包括第一服務(wù)對(duì)應(yīng)的至少一個(gè)第二節(jié)點(diǎn)的ip地址,這樣,可以根據(jù)至少一個(gè)第二節(jié)點(diǎn)的ip地址,向至少一個(gè)第二節(jié)點(diǎn)中第一服務(wù)為可用狀態(tài)的第一目標(biāo)節(jié)點(diǎn)發(fā)送第二服務(wù)調(diào)用請(qǐng)求,以調(diào)用第一目標(biāo)節(jié)點(diǎn)上的第一服務(wù)。其中,第二節(jié)點(diǎn)可以是第一集群中的節(jié)點(diǎn),也可以是其他集群中的節(jié)點(diǎn),實(shí)現(xiàn)了跨kubernetes服務(wù)集群的服務(wù)調(diào)用。