本申請(qǐng)涉及容器化,特別是涉及一種es容器化部署方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)。
背景技術(shù):
1、elasticsearch(es)提供了一個(gè)分布式多用戶能力的全文搜索引擎,主要用于云計(jì)算環(huán)境,還支持結(jié)構(gòu)化搜索、數(shù)據(jù)分析、復(fù)雜的語(yǔ)言處理、地理位置和對(duì)象間關(guān)聯(lián)關(guān)系等多種功能。
2、目前,容器化技術(shù)可以更有效地利用系統(tǒng)資源,通過(guò)在容器化環(huán)境中進(jìn)行es集群的部署,由kubernetes(k8s)等的調(diào)度和編排機(jī)制實(shí)現(xiàn)資源的動(dòng)態(tài)調(diào)度和分配,以實(shí)現(xiàn)es在k8s中的穩(wěn)定運(yùn)行和高效管理。然而,當(dāng)k8s機(jī)架出現(xiàn)宕機(jī)、斷電、掉盤(pán)等異常情況時(shí),es無(wú)法正常提供服務(wù),因此存在缺乏可靠性的問(wèn)題。
3、針對(duì)相關(guān)技術(shù)中存在缺乏可靠性的問(wèn)題,目前還沒(méi)有提出有效的解決方案。
技術(shù)實(shí)現(xiàn)思路
1、基于此,有必要針對(duì)上述技術(shù)問(wèn)題,提供一種能夠提高可靠性的es容器化部署方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)。
2、第一個(gè)方面,在本實(shí)施例中提供了一種es容器化部署方法,應(yīng)用于容器系統(tǒng)架構(gòu)中,所述容器系統(tǒng)架構(gòu)中的節(jié)點(diǎn)至少分布在兩個(gè)機(jī)架上,且至少有一個(gè)所述機(jī)架中的每個(gè)節(jié)點(diǎn)都正常工作;所述方法包括:
3、在所述容器系統(tǒng)架構(gòu)的各節(jié)點(diǎn)上創(chuàng)建至少一個(gè)用于承載es進(jìn)程的pod;
4、基于節(jié)點(diǎn)親和性和副本反親和性,將所述pod分組后分別部署在不同所述機(jī)架的節(jié)點(diǎn)中;
5、根據(jù)所述pod在所述機(jī)架中的分布對(duì)應(yīng)配置機(jī)架感知,以將es索引的主分片和至少一個(gè)副本分片分別部署在不同所述機(jī)架的節(jié)點(diǎn)中。
6、在其中的一些實(shí)施例中,所述基于節(jié)點(diǎn)親和性和副本反親和性,將所述pod分組后分別部署在不同所述機(jī)架的節(jié)點(diǎn)中,包括:
7、為所述節(jié)點(diǎn)設(shè)置節(jié)點(diǎn)標(biāo)簽;
8、基于所述節(jié)點(diǎn)標(biāo)簽,對(duì)所述pod進(jìn)行分組,以將組內(nèi)的所述pod部署在同一所述機(jī)架的節(jié)點(diǎn)中;
9、利用所述副本反親和性,將每組所述pod分別部署在不同所述機(jī)架的節(jié)點(diǎn)中。
10、在其中的一些實(shí)施例中,還包括:
11、根據(jù)不同所述機(jī)架中es節(jié)點(diǎn)的數(shù)量,對(duì)應(yīng)配置最小參與節(jié)點(diǎn)數(shù);
12、當(dāng)所述機(jī)架中可用的es節(jié)點(diǎn)的數(shù)量大于或等于所述最小參與節(jié)點(diǎn)數(shù)時(shí),通過(guò)選舉策略,從所述可用的es節(jié)點(diǎn)中確定es主節(jié)點(diǎn)。
13、在其中的一些實(shí)施例中,還包括:
14、創(chuàng)建service資源;
15、通過(guò)所述service資源獲取用戶請(qǐng)求,并將所述用戶請(qǐng)求轉(zhuǎn)發(fā)至可用的pod。
16、在其中的一些實(shí)施例中,還包括:
17、定時(shí)上報(bào)所述pod的狀態(tài),以在所述service資源中根據(jù)所述pod的狀態(tài)確定所述可用的pod。
18、在其中的一些實(shí)施例中,還包括:
19、當(dāng)所述用戶請(qǐng)求為查詢請(qǐng)求時(shí),根據(jù)所述查詢請(qǐng)求,確定相應(yīng)的es節(jié)點(diǎn);并通過(guò)所述es節(jié)點(diǎn)返回查詢結(jié)果。
20、在其中的一些實(shí)施例中,還包括:
21、為所述pod配置探針;
22、通過(guò)所述探針,定時(shí)檢測(cè)所述機(jī)架中的磁盤(pán)資源是否異常,并上報(bào)對(duì)應(yīng)pod的異常狀態(tài)。
23、第二個(gè)方面,在本實(shí)施例中提供了一種es容器化部署裝置,應(yīng)用于容器系統(tǒng)架構(gòu)中,所述容器系統(tǒng)架構(gòu)中的節(jié)點(diǎn)至少分布在兩個(gè)機(jī)架上,且至少有一個(gè)所述機(jī)架中的每個(gè)節(jié)點(diǎn)都正常工作;所述裝置包括:
24、創(chuàng)建模塊,用于在所述容器系統(tǒng)架構(gòu)的各節(jié)點(diǎn)上創(chuàng)建至少一個(gè)用于承載es進(jìn)程的pod;
25、部署模塊,用于基于節(jié)點(diǎn)親和性和副本反親和性,將所述pod分組后分別部署在不同所述機(jī)架的節(jié)點(diǎn)中;
26、配置模塊,用于根據(jù)所述pod在所述機(jī)架中的分布對(duì)應(yīng)配置機(jī)架感知,以將es索引的主分片和至少一個(gè)副本分片分別部署在不同所述機(jī)架的節(jié)點(diǎn)中。
27、第三個(gè)方面,在本實(shí)施例中提供了一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述第一個(gè)方面所述的es容器化部署方法。
28、第四個(gè)方面,在本實(shí)施例中提供了一種存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述第一個(gè)方面所述的es容器化部署方法。
29、與相關(guān)技術(shù)相比,在本實(shí)施例中提供的es容器化部署方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì),應(yīng)用于容器系統(tǒng)架構(gòu)中,所述容器系統(tǒng)架構(gòu)中的節(jié)點(diǎn)至少分布在兩個(gè)機(jī)架上,且至少有一個(gè)所述機(jī)架中的每個(gè)節(jié)點(diǎn)都正常工作;通過(guò)在所述容器系統(tǒng)架構(gòu)的各節(jié)點(diǎn)上創(chuàng)建至少一個(gè)用于承載es進(jìn)程的pod;基于節(jié)點(diǎn)親和性和副本反親和性,將所述pod分組后分別部署在不同所述機(jī)架的節(jié)點(diǎn)中;根據(jù)所述pod在所述機(jī)架中的分布對(duì)應(yīng)配置機(jī)架感知,以將es索引的主分片和至少一個(gè)副本分片分別部署在不同所述機(jī)架的節(jié)點(diǎn)中。本實(shí)施例中將各組pod分別部署在容器系統(tǒng)架構(gòu)的不同機(jī)架的節(jié)點(diǎn)中,并且通過(guò)配置機(jī)架感知,將es索引的主分片和至少一個(gè)副本分片分別部署在不同機(jī)架的節(jié)點(diǎn)中,這樣即使在機(jī)架出現(xiàn)異常情況時(shí),es能夠依靠機(jī)架中的所有正常工作節(jié)點(diǎn)正常提供服務(wù),解決了缺乏可靠性的問(wèn)題。
30、本申請(qǐng)的一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)在以下附圖和描述中提出,以使本申請(qǐng)的其他特征、目的和優(yōu)點(diǎn)更加簡(jiǎn)明易懂。
1.一種es容器化部署方法,其特征在于,應(yīng)用于容器系統(tǒng)架構(gòu)中,所述容器系統(tǒng)架構(gòu)中的節(jié)點(diǎn)至少分布在兩個(gè)機(jī)架上,且至少有一個(gè)所述機(jī)架中的每個(gè)節(jié)點(diǎn)都正常工作;所述方法包括:
2.根據(jù)權(quán)利要求1所述的es容器化部署方法,其特征在于,所述基于節(jié)點(diǎn)親和性和副本反親和性,將所述pod分組后分別部署在不同所述機(jī)架的節(jié)點(diǎn)中,包括:
3.根據(jù)權(quán)利要求1所述的es容器化部署方法,其特征在于,還包括:
4.根據(jù)權(quán)利要求1所述的es容器化部署方法,其特征在于,還包括:
5.根據(jù)權(quán)利要求4所述的es容器化部署方法,其特征在于,還包括:
6.根據(jù)權(quán)利要求4所述的es容器化部署方法,其特征在于,還包括:
7.根據(jù)權(quán)利要求1所述的es容器化部署方法,其特征在于,還包括:
8.一種es容器化部署裝置,其特征在于,應(yīng)用于容器系統(tǒng)架構(gòu)中,所述容器系統(tǒng)架構(gòu)中的節(jié)點(diǎn)至少分布在兩個(gè)機(jī)架上,且至少有一個(gè)所述機(jī)架中的每個(gè)節(jié)點(diǎn)都正常工作;所述裝置包括:
9.一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,其特征在于,所述存儲(chǔ)器中存儲(chǔ)有計(jì)算機(jī)程序,所述處理器被設(shè)置為運(yùn)行所述計(jì)算機(jī)程序以執(zhí)行權(quán)利要求1至權(quán)利要求7中任一項(xiàng)所述的es容器化部署方法。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至權(quán)利要求7中任一項(xiàng)所述的es容器化部署方法的步驟。