本發(fā)明涉及云計算,尤其涉及一種資源調(diào)度方法和裝置。
背景技術(shù):
1、kubernetes(簡稱為k8s)是一種容器編排和管理系統(tǒng),在企業(yè)級應(yīng)用程序和云計算環(huán)境中得到了廣泛的應(yīng)用。在目前的k8s集群中,用戶難以兼顧資源利用率與資源可靠性,例如,某用戶在k8s集群中申請了10個8c12g(即8個中央處理器cpu核、12gb內(nèi)存)的容器資源,這些資源能夠滿足服務(wù)在業(yè)務(wù)高峰期時的使用量,但是業(yè)務(wù)高峰期持續(xù)的時間通常在1至2小時(例如電商促銷場景),隨后進(jìn)入到業(yè)務(wù)平穩(wěn)期,業(yè)務(wù)平穩(wěn)期的資源利用率很低,cpu使用率在3%~5%之間,造成了資源的極大浪費。但是,用戶無法在業(yè)務(wù)平穩(wěn)期將資源縮容掉,因為如果這樣做,等到了業(yè)務(wù)高峰期需要擴(kuò)容時可能出現(xiàn)資源不足的問題。例如,在需要擴(kuò)容時k8s已經(jīng)將用戶縮容掉的資源分配給其它服務(wù)從而無法分配給該用戶的服務(wù),導(dǎo)致對該用戶的服務(wù)產(chǎn)生嚴(yán)重影響,這種情況即資源可靠性低,實際中用戶往往只能一直將資源維持在業(yè)務(wù)高峰期所需的使用量。
技術(shù)實現(xiàn)思路
1、有鑒于此,本發(fā)明實施例提供一種資源調(diào)度方法和裝置,能夠在確保工作容器靈活擴(kuò)容縮容的前提下提高資源利用率。
2、為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種資源調(diào)度方法。
3、本發(fā)明實施例的資源調(diào)度方法包括:在計算機(jī)集群的目標(biāo)節(jié)點創(chuàng)建空容器;其中,所述目標(biāo)節(jié)點中含有包括目標(biāo)容器在內(nèi)的至少一個工作容器;響應(yīng)于接收到針對任一目標(biāo)容器的縮容請求,確定所述縮容請求對應(yīng)的縮減資源數(shù)量,增加所述空容器的資源規(guī)格以在所述空容器占用數(shù)量為所述縮減資源數(shù)量的資源,基于所述空容器的當(dāng)前占用資源執(zhí)行外部任務(wù);響應(yīng)于接收到針對任一目標(biāo)容器的擴(kuò)容請求,判斷所述空容器當(dāng)前是否占用該目標(biāo)容器的、數(shù)量為所述擴(kuò)容請求對應(yīng)的擴(kuò)展資源數(shù)量的資源;若占用,將數(shù)量為所述擴(kuò)展資源數(shù)量的資源從外部任務(wù)回收,減少所述空容器的資源規(guī)格以在所述空容器釋放數(shù)量為所述擴(kuò)展資源數(shù)量的資源。
4、可選地,所述方法進(jìn)一步包括:在接收到針對任一目標(biāo)容器的縮容請求之后,對該目標(biāo)容器執(zhí)行縮容操作;在所述減少所述空容器的資源規(guī)格以在所述空容器釋放數(shù)量為所述擴(kuò)展資源數(shù)量的資源之后,基于所述空容器釋放的資源對相應(yīng)目標(biāo)容器執(zhí)行擴(kuò)容操作。
5、可選地,所述方法進(jìn)一步包括:在創(chuàng)建所述空容器之后,獲取所述目標(biāo)節(jié)點中各目標(biāo)容器的初始資源數(shù)量并記錄;在所述對該目標(biāo)容器執(zhí)行縮容操作之后,將針對該目標(biāo)容器的縮容請求中攜帶的縮容目標(biāo)資源數(shù)量確定為該目標(biāo)容器的當(dāng)前資源數(shù)量并記錄。
6、可選地,所述確定所述縮容請求對應(yīng)的縮減資源數(shù)量,包括:將任一目標(biāo)容器的初始資源數(shù)量減去針對該目標(biāo)容器的縮容請求中攜帶的縮容目標(biāo)資源數(shù)量,得到該縮容請求對應(yīng)的縮減資源數(shù)量;以及,所述方法進(jìn)一步包括:將針對任一目標(biāo)容器的擴(kuò)容請求中攜帶的擴(kuò)容目標(biāo)資源數(shù)量減去該目標(biāo)容器的當(dāng)前資源數(shù)量,得到該擴(kuò)容請求對應(yīng)的擴(kuò)展資源數(shù)量。
7、可選地,所述基于所述空容器的當(dāng)前占用資源執(zhí)行外部任務(wù),包括:響應(yīng)于接收到特定容器創(chuàng)建請求,基于所述空容器的當(dāng)前占用資源在所述目標(biāo)節(jié)點創(chuàng)建不屬于所述工作容器的特定容器,在創(chuàng)建的特定容器中執(zhí)行所述外部任務(wù)。
8、可選地,所述響應(yīng)于接收到特定容器創(chuàng)建請求,基于所述空容器的當(dāng)前占用資源在所述目標(biāo)節(jié)點創(chuàng)建不屬于所述工作容器的特定容器,包括:在接收到所述特定容器創(chuàng)建請求之后,嘗試?yán)盟隹杖萜鞯漠?dāng)前占用資源在所述目標(biāo)節(jié)點創(chuàng)建所述特定容器;判斷預(yù)設(shè)時間段內(nèi)所述特定容器是否創(chuàng)建成功;若創(chuàng)建成功,調(diào)整所述空容器的當(dāng)前占用資源數(shù)量;若創(chuàng)建失敗,釋放創(chuàng)建所述特定容器所使用的資源并保持所述空容器的當(dāng)前占用資源數(shù)量。
9、為實現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種資源調(diào)度裝置。
10、本發(fā)明實施例的資源調(diào)度裝置包括:空容器創(chuàng)建單元、控制器和調(diào)度器;其中,所述空容器創(chuàng)建單元用于在計算機(jī)集群的目標(biāo)節(jié)點創(chuàng)建空容器;所述目標(biāo)節(jié)點中含有包括目標(biāo)容器在內(nèi)的至少一個工作容器;所述控制器用于:接收針對任一目標(biāo)容器的縮容請求,確定所述縮容請求對應(yīng)的縮減資源數(shù)量,增加所述空容器的資源規(guī)格以在所述空容器占用數(shù)量為所述縮減資源數(shù)量的資源;接收針對任一目標(biāo)容器的擴(kuò)容請求,判斷所述空容器當(dāng)前是否占用該目標(biāo)容器的、數(shù)量為所述擴(kuò)容請求對應(yīng)的擴(kuò)展資源數(shù)量的資源;若占用,在數(shù)量為所述擴(kuò)展資源數(shù)量的資源被從外部任務(wù)回收后,減少所述空容器的資源規(guī)格以在所述空容器釋放數(shù)量為所述擴(kuò)展資源數(shù)量的資源;所述調(diào)度器用于:基于所述空容器的當(dāng)前占用資源執(zhí)行外部任務(wù);在所述控制器判斷所述空容器當(dāng)前占用該目標(biāo)容器的、數(shù)量為所述擴(kuò)容請求對應(yīng)的擴(kuò)展資源數(shù)量的資源之后,將數(shù)量為所述擴(kuò)展資源數(shù)量的資源從外部任務(wù)回收。
11、可選地,所述控制器進(jìn)一步用于:在接收到針對任一目標(biāo)容器的縮容請求之后,對該目標(biāo)容器執(zhí)行縮容操作;在所述減少所述空容器的資源規(guī)格以在所述空容器釋放數(shù)量為所述擴(kuò)展資源數(shù)量的資源之后,基于所述空容器釋放的資源對相應(yīng)目標(biāo)容器執(zhí)行擴(kuò)容操作。
12、為實現(xiàn)上述目的,根據(jù)本發(fā)明的又一方面,提供了一種電子設(shè)備。
13、本發(fā)明的一種電子設(shè)備包括:一個或多個處理器;存儲裝置,用于存儲一個或多個程序,當(dāng)所述一個或多個程序被所述一個或多個處理器執(zhí)行,使得所述一個或多個處理器實現(xiàn)本發(fā)明所提供的資源調(diào)度方法。
14、為實現(xiàn)上述目的,根據(jù)本發(fā)明的再一方面,提供了一種計算機(jī)可讀存儲介質(zhì)。
15、本發(fā)明的一種計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,所述程序被處理器執(zhí)行時實現(xiàn)本發(fā)明所提供的資源調(diào)度方法。
16、根據(jù)本發(fā)明的技術(shù)方案,上述發(fā)明中的實施例具有如下優(yōu)點或有益效果:
17、資源調(diào)度裝置(下稱裝置)預(yù)先在k8s集群的目標(biāo)節(jié)點創(chuàng)建空容器,目標(biāo)節(jié)點即開啟資源預(yù)占功能的目標(biāo)容器所在的節(jié)點。在接收到針對目標(biāo)容器的縮容請求之后,裝置執(zhí)行縮容操作,并增加空容器的資源規(guī)格以在空容器占用數(shù)量為縮減資源數(shù)量的資源,空容器的當(dāng)前占用資源可用于在同一節(jié)點創(chuàng)建特定容器來執(zhí)行外部任務(wù)。在接收到針對目標(biāo)容器的擴(kuò)容請求之后,裝置若判斷空容器當(dāng)前占用該目標(biāo)容器的、數(shù)量為擴(kuò)展資源數(shù)量的資源的情況下,將相應(yīng)數(shù)量的資源從外部任務(wù)回收,并減少空容器的資源規(guī)格從而在空容器釋放相應(yīng)數(shù)量的資源,最后使用釋放的資源對目標(biāo)容器執(zhí)行擴(kuò)容操作。如此,通過目標(biāo)節(jié)點中空容器的資源預(yù)占,在保證任意目標(biāo)容器能夠隨意靈活擴(kuò)容縮容(即資源可靠性高)的前提下提高資源利用率,實現(xiàn)資源在原有任務(wù)與外部任務(wù)之間的復(fù)用,避免資源的閑置和浪費。以上裝置可與k8s集群適配,在不影響k8s原有功能的基礎(chǔ)上實現(xiàn)資源可靠性與資源利用率的兼顧。
18、上述的非慣用的可選方式所具有的進(jìn)一步效果將在下文中結(jié)合具體實施方式加以說明。
1.一種資源調(diào)度方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法進(jìn)一步包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述確定所述縮容請求對應(yīng)的縮減資源數(shù)量,包括:將任一目標(biāo)容器的初始資源數(shù)量減去針對該目標(biāo)容器的縮容請求中攜帶的縮容目標(biāo)資源數(shù)量,得到該縮容請求對應(yīng)的縮減資源數(shù)量;以及,
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述空容器的當(dāng)前占用資源執(zhí)行外部任務(wù),包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述響應(yīng)于接收到特定容器創(chuàng)建請求,基于所述空容器的當(dāng)前占用資源在所述目標(biāo)節(jié)點創(chuàng)建不屬于所述工作容器的特定容器,包括:
7.一種資源調(diào)度裝置,其特征在于,包括:空容器創(chuàng)建單元、控制器和調(diào)度器;其中,
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述控制器進(jìn)一步用于:
9.一種電子設(shè)備,其特征在于,包括:
10.一種計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,其特征在于,所述程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1-6中任一所述的方法。