本技術涉及微服務架構,尤其涉及一種容器編排調(diào)度方法、裝置、服務器及存儲介質(zhì)。
背景技術:
1、在云計算領域,隨著微服務架構的普及和容器技術的成熟,容器編排調(diào)度成為資源管理和應用部署的關鍵技術。其中,開源的kubemnetes(k8s)作為主流的容器編排調(diào)度工具,被廣泛應用于自動部署、擴展和管理容器化應用。
2、現(xiàn)有技術中通過k8s實現(xiàn)容器調(diào)度主要依賴于其原生控制器,即k8s可以基于原生內(nèi)置資源實現(xiàn)鏡像版本、節(jié)點親和、回滾管理等基本的調(diào)度決策。
3、隨著云原生技術的發(fā)展,越來越多的企業(yè)開始采用微服務架構,使資源調(diào)度的應用場景更加復雜化,如突發(fā)性的資源需求、高負載下的性能機頸等問題。k8s在采用原生控制器在處理上述場景下的容器調(diào)度時顯得有些力不從心,并且在采用原生控制器進行容器調(diào)度時往往還需要人工進行干預和優(yōu)化,這不僅限制了系統(tǒng)的擴展性和靈活性,還增加了運維成本。
技術實現(xiàn)思路
1、申請?zhí)峁┮环N容器編排調(diào)度方法、裝置、服務器及存儲介質(zhì),用以解決現(xiàn)有技術中在處理微服務架構下容器調(diào)度問題時存在運維成本高,以及架構擴展性和靈活性差等問題,實現(xiàn)了降低運維成本,適應復雜多變的應用需求的技術效果。
2、第一方面,本技術提供一種容器編排調(diào)度方法,包括:
3、接收用戶端根據(jù)調(diào)度策略生成并傳輸?shù)馁Y源創(chuàng)建指令;
4、響應所述資源創(chuàng)建指令,創(chuàng)建所述調(diào)度策略對應的自定義資源,并生成所述調(diào)度策略對應的自定義控制器;所述自定義資源與微服務架構中部署的某一容器存在對應關系;
5、生成所述調(diào)度策略對應的調(diào)度執(zhí)行邏輯;所述調(diào)度執(zhí)行邏輯用于被讀取至所述自定義控制器中時,在所述自定義控制器中生成對應的調(diào)度執(zhí)行代碼;所述調(diào)度執(zhí)行代碼用于對所述自定義資源對應的容器進行資源調(diào)度處理。
6、在一種可能的設計中,在生成所述調(diào)度策略對應的調(diào)度執(zhí)行邏輯之后,所述方法還包括:
7、響應于對微服務架構中部署的任一容器進行資源調(diào)度的調(diào)度指令被觸發(fā),確定所述調(diào)度指令對應的自定義資源,生成并廣播所述自定義資源對應的資源調(diào)度事件;
8、在所述資源調(diào)度事件被對應的自定義控制器監(jiān)聽到時,通過所述自定義控制器讀取所述資源調(diào)度事件對應的調(diào)度執(zhí)行邏輯,并生成對應的調(diào)度執(zhí)行代碼;
9、執(zhí)行所述調(diào)度執(zhí)行代碼,得到資源調(diào)度后的容器資源。
10、在一種可能的設計中,通過所述自定義控制器讀取所述資源調(diào)度事件對應的調(diào)度執(zhí)行邏輯,并生成對應的調(diào)度執(zhí)行代碼,包括:
11、根據(jù)所述資源調(diào)度事件對應的自定義資源,在預生成的邏輯數(shù)據(jù)庫中讀取所述自定義資源對應的調(diào)度執(zhí)行邏輯;
12、根據(jù)所述調(diào)度執(zhí)行邏輯進行代碼編輯,生成對應的調(diào)度執(zhí)行代碼。
13、在一種可能的設計中,執(zhí)行所述調(diào)度執(zhí)行代碼,得到資源調(diào)度后的容器資源,包括:
14、執(zhí)行所述調(diào)度執(zhí)行代碼,記錄所述調(diào)度執(zhí)行代碼在執(zhí)行過程中的代碼執(zhí)行狀態(tài);
15、在所述代碼執(zhí)行狀態(tài)滿足預設條件時,得到資源調(diào)度后的容器資源。
16、在一種可能的設計中,響應所述資源創(chuàng)建指令,創(chuàng)建所述調(diào)度策略對應的自定義資源,并生成所述調(diào)度策略對應的自定義控制器,包括:
17、解析所述資源創(chuàng)建指令,得到所述資源創(chuàng)建指令包含的調(diào)度策略;
18、調(diào)用預設的資源創(chuàng)建組件,響應所述資源創(chuàng)建指令生成自定義資源文件,并根據(jù)所述調(diào)度策略在所述自定義資源文件中進行對象創(chuàng)建,生成對應的自定義資源;
19、調(diào)用預設的控制器創(chuàng)建組件,響應于所述自定義資源的生成,創(chuàng)建自定義資源對應的自定義控制器。
20、在一種可能的設計中,在生成所述調(diào)度策略對應的調(diào)度執(zhí)行邏輯之后,所述方法還包括:
21、將所述調(diào)度執(zhí)行邏輯與所述調(diào)度策略對應的自定義資源關聯(lián)存儲于預生成的邏輯數(shù)據(jù)庫,以在接收到所述自定義控制器的邏輯讀取指令時將所述調(diào)度執(zhí)行邏輯傳輸至所述自定義控制器中進行執(zhí)行代碼的生成。
22、第二方面,本技術提供一種容器編排調(diào)度裝置,包括:
23、資源創(chuàng)建指令接收模塊,用于接收用戶端根據(jù)調(diào)度策略生成并傳輸?shù)馁Y源創(chuàng)建指令;
24、資源以及控制器生成模塊,用于響應所述資源創(chuàng)建指令,創(chuàng)建所述調(diào)度策略對應的自定義資源,并生成所述調(diào)度策略對應的自定義控制器;所述自定義資源與微服務架構中部署的某一容器存在對應關系;
25、調(diào)度執(zhí)行邏輯生成模塊,用于生成所述調(diào)度策略對應的調(diào)度執(zhí)行邏輯;所述調(diào)度執(zhí)行邏輯用于被讀取至所述自定義控制器中時,在所述自定義控制器中生成對應的調(diào)度執(zhí)行代碼;所述調(diào)度執(zhí)行代碼用于對所述自定義資源對應的容器進行資源調(diào)度處理。
26、在一種可能的設計中,該裝置還包括:
27、資源調(diào)度事件生成模塊,用于響應于對微服務架構中部署的任一容器進行資源調(diào)度的調(diào)度指令被觸發(fā),確定所述調(diào)度指令對應的自定義資源,生成并廣播所述自定義資源對應的資源調(diào)度事件;
28、調(diào)度執(zhí)行代碼生成模塊,用于在所述資源調(diào)度事件被對應的自定義控制器監(jiān)聽到時,通過所述自定義控制器讀取所述資源調(diào)度事件對應的調(diào)度執(zhí)行邏輯,并生成對應的調(diào)度執(zhí)行代碼;
29、資源調(diào)度模塊,用于執(zhí)行所述調(diào)度執(zhí)行代碼,得到資源調(diào)度后的容器資源。
30、在一種可能的設計中,調(diào)度執(zhí)行代碼生成模塊,包括:
31、調(diào)度執(zhí)行邏輯讀取子模塊,用于根據(jù)所述資源調(diào)度事件對應的自定義資源,在預生成的邏輯數(shù)據(jù)庫中讀取所述自定義資源對應的調(diào)度執(zhí)行邏輯;
32、調(diào)度執(zhí)行代碼生成子模塊,用于根據(jù)所述調(diào)度執(zhí)行邏輯進行代碼編輯,生成對應的調(diào)度執(zhí)行代碼。
33、在一種可能的設計中,資源調(diào)度模塊,包括:
34、執(zhí)行狀態(tài)確定子模塊,用于執(zhí)行所述調(diào)度執(zhí)行代碼,記錄所述調(diào)度執(zhí)行代碼在執(zhí)行過程中的代碼執(zhí)行狀態(tài);
35、容器資源確定子模塊,用于在所述代碼執(zhí)行狀態(tài)滿足預設條件時,得到資源調(diào)度后的容器資源。
36、在一種可能的設計中,資源以及控制器生成模塊,包括:
37、調(diào)度策略生成子模塊,用于解析所述資源創(chuàng)建指令,得到所述資源創(chuàng)建指令包含的調(diào)度策略;
38、自定義資源生成子模塊,用于調(diào)用預設的資源創(chuàng)建組件,響應所述資源創(chuàng)建指令生成自定義資源文件,并根據(jù)所述調(diào)度策略在所述自定義資源文件中進行對象創(chuàng)建,生成對應的自定義資源;
39、自定義控制器生成子模塊,用于調(diào)用預設的控制器創(chuàng)建組件,響應于所述自定義資源的生成,創(chuàng)建自定義資源對應的自定義控制器。
40、在一種可能的設計中,該裝置還包括:
41、調(diào)度執(zhí)行邏輯存儲模塊,用于將所述調(diào)度執(zhí)行邏輯與所述調(diào)度策略對應的自定義資源關聯(lián)存儲于預生成的邏輯數(shù)據(jù)庫,以在接收到所述自定義控制器的邏輯讀取指令時將所述調(diào)度執(zhí)行邏輯傳輸至所述自定義控制器中進行執(zhí)行代碼的生成。
42、第三方面,本技術實施例提供一種服務器,包括:至少一個處理器和存儲器;所述存儲器存儲計算機執(zhí)行指令;所述至少一個處理器執(zhí)行所述存儲器存儲的計算機執(zhí)行指令,使得所述至少一個處理器執(zhí)行如上第一方面以及第一方面各種可能的設計所述的容器編排調(diào)度方法。
43、第四方面,本技術實施例提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)中存儲有計算機執(zhí)行指令,當處理器執(zhí)行所述計算機執(zhí)行指令時,實現(xiàn)如上第一方面以及第一方面各種可能的設計所述的容器編排調(diào)度方法。
44、第五方面,本技術實施例提供一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時,實現(xiàn)如上第一方面以及第一方面各種可能的設計所述的容器編排調(diào)度方法。
45、本技術提供的容器編排調(diào)度方法、裝置、服務器及存儲介質(zhì),本技術實施例提供的容器編排調(diào)度方法,通過接收用戶端根據(jù)調(diào)度策略生成并傳輸?shù)馁Y源創(chuàng)建指令;響應所述資源創(chuàng)建指令,創(chuàng)建所述調(diào)度策略對應的自定義資源,并生成所述調(diào)度策略對應的自定義控制器;所述自定義資源與微服務架構中部署的某一容器存在對應關系;生成所述調(diào)度策略對應的調(diào)度執(zhí)行邏輯;所述調(diào)度執(zhí)行邏輯用于被讀取至所述自定義控制器中時,在所述自定義控制器中生成對應的調(diào)度執(zhí)行代碼;所述調(diào)度執(zhí)行代碼用于對所述自定義資源對應的容器進行資源調(diào)度處理;上述技術方案中,通過預先生成多種調(diào)度策略,根據(jù)各調(diào)度策略創(chuàng)建對應的自定義資源和自定義控制器,實現(xiàn)了實現(xiàn)適應各種調(diào)度需求,提高系統(tǒng)的擴展性和靈活性在此基礎上還生成各調(diào)度策略對應的調(diào)度執(zhí)行邏輯,進而可以實現(xiàn)在自定義控制器執(zhí)行調(diào)度策略時通過調(diào)度執(zhí)行邏輯自動生成調(diào)度執(zhí)行代碼并用過執(zhí)行上述代碼完成調(diào)度,減少了調(diào)度過程中的人工干預和優(yōu)化,實現(xiàn)了降低運維成本。如此,便能夠解決現(xiàn)有技術中現(xiàn)有編排調(diào)度工具在采用原生控制器在處理上述場景下存在運維成本高以及系統(tǒng)擴展性和靈活性差的技術問題。