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