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