本發(fā)明涉及容器,尤其涉及一種pod負(fù)載調(diào)度分配方法、裝置及存儲介質(zhì)。
背景技術(shù):
1、kubernetes,簡稱k8s,是一個(gè)開源的容器編排管理工具。pod是k8s的最小控制單元,用于承載與運(yùn)行實(shí)際應(yīng)用程序,也是k8s中的最小調(diào)度單位,pod也可以單獨(dú)啟動運(yùn)行,無需用k8s中的控制器控制。
2、在kubernetes中,支持為pod中的容器指定資源請求。資源請求是容器對所需資源的期望值,調(diào)度器會根據(jù)kubernetes集群中節(jié)點(diǎn)內(nèi)部的可分配資源與容器的資源請求進(jìn)行匹配,以確定pod應(yīng)該被分配到哪個(gè)節(jié)點(diǎn)。當(dāng)用戶提交一個(gè)pod到k8s集群時(shí),會選擇一個(gè)pod開始進(jìn)行調(diào)度操作,每次對pod的調(diào)度首先為pod選擇一個(gè)計(jì)算節(jié)點(diǎn),然后將該pod綁定到服務(wù)器中選擇的計(jì)算節(jié)點(diǎn),開始到這個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行。
3、在現(xiàn)有的原生的kubernetes調(diào)度策略傾向于調(diào)度pod到節(jié)點(diǎn)剩余資源較多的節(jié)點(diǎn),當(dāng)該種方式需要準(zhǔn)確定義節(jié)點(diǎn)剩余資源值,一旦剩余資源值設(shè)定不準(zhǔn)確,則會使得部分節(jié)點(diǎn)不會接收到pod,而另一部分節(jié)點(diǎn)則會過載。破壞了集群的平衡穩(wěn)定性。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供了一種pod負(fù)載調(diào)度分配方法、裝置及存儲介質(zhì),以解決現(xiàn)有技術(shù)中pod負(fù)載調(diào)度策略容易導(dǎo)致節(jié)點(diǎn)負(fù)載不均衡導(dǎo)致節(jié)點(diǎn)穩(wěn)定性較低,進(jìn)而降低集群的穩(wěn)定性。
2、第一方面,本發(fā)明實(shí)施例提供了一種pod負(fù)載調(diào)度分配方法,包括:
3、根據(jù)?pod?的需求計(jì)算需求請求量與每個(gè)節(jié)點(diǎn)資源總量的比值;
4、計(jì)算所有節(jié)點(diǎn)的資源利用率的平均值,以及當(dāng)前每個(gè)節(jié)點(diǎn)的資源利用率與所述平均值的差值;
5、根據(jù)所述平均值、所述的差值和所述比值計(jì)算每個(gè)節(jié)點(diǎn)接收需求后每個(gè)節(jié)點(diǎn)與節(jié)點(diǎn)平均負(fù)載的偏離度;
6、根據(jù)所述接收需求后每個(gè)節(jié)點(diǎn)與節(jié)點(diǎn)平均負(fù)載的偏離度確定需求接收節(jié)點(diǎn),以使得分配后各個(gè)節(jié)點(diǎn)的負(fù)載率與節(jié)點(diǎn)資源使用率平均值的差值均小于預(yù)設(shè)的差值閾值。
7、第二方面,本發(fā)明實(shí)施例還提供了一種pod負(fù)載調(diào)度分配裝置,包括:
8、第一計(jì)算模塊,用于根據(jù)?pod?的需求計(jì)算需求請求量與每個(gè)節(jié)點(diǎn)資源總量的比值;
9、第二計(jì)算模塊,用于計(jì)算所有節(jié)點(diǎn)的資源利用率的平均值,以及當(dāng)前每個(gè)節(jié)點(diǎn)的資源利用率與所述平均值的差值;
10、第三計(jì)算模塊,用于根據(jù)所述平均值、所述的差值和所述比值計(jì)算每個(gè)節(jié)點(diǎn)接收需求后每個(gè)節(jié)點(diǎn)與節(jié)點(diǎn)平均負(fù)載的偏離度;
11、確定模塊,用于根據(jù)所述接收需求后每個(gè)節(jié)點(diǎn)與節(jié)點(diǎn)平均負(fù)載的偏離度確定需求接收節(jié)點(diǎn),以使得分配后各個(gè)節(jié)點(diǎn)的負(fù)載率與節(jié)點(diǎn)資源使用率平均值的差值均小于預(yù)設(shè)的差值閾值。
12、第三方面,本發(fā)明實(shí)施例還提供了一種包含計(jì)算機(jī)可執(zhí)行指令的存儲介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí)用于執(zhí)行如上述實(shí)施例提供的pod負(fù)載調(diào)度分配方法。
13、本發(fā)明實(shí)施例提供的pod負(fù)載調(diào)度分配方法、裝置及存儲介質(zhì),通過根據(jù)?pod?的需求計(jì)算需求請求量與每個(gè)節(jié)點(diǎn)資源總量的比值;計(jì)算所有節(jié)點(diǎn)的資源利用率的平均值,以及當(dāng)前每個(gè)節(jié)點(diǎn)的資源利用率與所述平均值的差值;根據(jù)所述平均值、所述的差值和所述比值計(jì)算每個(gè)節(jié)點(diǎn)接收需求后每個(gè)節(jié)點(diǎn)與節(jié)點(diǎn)平均負(fù)載的偏離度;根據(jù)所述接收需求后每個(gè)節(jié)點(diǎn)與節(jié)點(diǎn)平均負(fù)載的偏離度確定需求接收節(jié)點(diǎn),以使得分配后各個(gè)節(jié)點(diǎn)的負(fù)載率與節(jié)點(diǎn)資源使用率平均值的差值均小于預(yù)設(shè)的差值閾值。利用計(jì)算評分選取具有節(jié)點(diǎn)負(fù)載比較平衡,且負(fù)載急劇變化的風(fēng)險(xiǎn)小特點(diǎn)的節(jié)點(diǎn),使得pod越傾向于調(diào)度到上述特點(diǎn)的節(jié)點(diǎn),從而整體上進(jìn)一步平衡集群的負(fù)載,提高集群的穩(wěn)定性。
1.一種pod負(fù)載調(diào)度分配方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)每個(gè)節(jié)點(diǎn)的資源利用率平均值、所述平均值的差值和需求請求量與每個(gè)節(jié)點(diǎn)資源總量的比值計(jì)算節(jié)點(diǎn)接收需求后每個(gè)節(jié)點(diǎn)與節(jié)點(diǎn)平均負(fù)載的偏離度,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述接收需求后每個(gè)節(jié)點(diǎn)與節(jié)點(diǎn)平均負(fù)載的偏離度確定需求接收節(jié)點(diǎn),包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述資源包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述選取評分最高的節(jié)點(diǎn)作為需求接收節(jié)點(diǎn),包括:
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,在根據(jù)?pod?的需求計(jì)算需求請求量與每個(gè)節(jié)點(diǎn)資源總量的比值之前,所述方法還包括:
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述pod負(fù)載調(diào)度分配方法應(yīng)用于kubernetes平臺,相應(yīng)的,
9.一種pod負(fù)載調(diào)度分配裝置,其特征在于,包括:
10.一種包含計(jì)算機(jī)可執(zhí)行指令的存儲介質(zhì),其特征在于,所述計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí)用于執(zhí)行如權(quán)利要求1-8任一所述的pod負(fù)載調(diào)度分配方法。