本申請涉及通信,具體涉及一種集群擴(kuò)縮容方法、裝置、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、kubernetes集群提供了hpa(horizontal?pod?autoscaler,水平容器pod自動擴(kuò)縮容)功能,可以根據(jù)指定的指標(biāo)(如cpu利用率、內(nèi)存使用量等)自動調(diào)整pod的副本數(shù)量,實(shí)現(xiàn)彈性擴(kuò)縮容。還可以根據(jù)容器內(nèi)部的資源需求自動調(diào)整pod的資源限制,優(yōu)化資源利用和性能。目前,基于kubernetes集群的自動擴(kuò)縮容解決方案僅支持容器(pod)粒度和節(jié)點(diǎn)(node)粒度的自動擴(kuò)容,無法在集群(cluster)粒度上實(shí)現(xiàn)自動擴(kuò)縮容。這意味著當(dāng)集群內(nèi)沒有可用資源時(shí),無法利用可用區(qū)內(nèi)或其他可用區(qū)的空閑資源進(jìn)行自動擴(kuò)容。為了實(shí)現(xiàn)集群擴(kuò)容,需要運(yùn)維人員手動添加資源到集群或手動創(chuàng)建新的集群,這增加了運(yùn)維的工作量并導(dǎo)致擴(kuò)容周期延長,無法滿足業(yè)務(wù)的即時(shí)需求;同時(shí),只支持容器(pod)粒度和節(jié)點(diǎn)(node)粒度的自動縮容,不支持對擴(kuò)容的集群(cluster)的自動縮容,在業(yè)務(wù)量下降后,需要運(yùn)維人員手工縮容,運(yùn)維投入高,同時(shí)容易造成資源浪費(fèi)。
技術(shù)實(shí)現(xiàn)思路
1、本申請實(shí)施例提供一種集群擴(kuò)縮容方法、裝置、設(shè)備及存儲介質(zhì),用以解決現(xiàn)有的集群擴(kuò)縮容方案,只支持容器粒度和節(jié)點(diǎn)粒度的擴(kuò)容,集群粒度需要手動擴(kuò)縮容,無法滿足業(yè)務(wù)的即時(shí)需求,且運(yùn)維工作量大,容易造成資源浪費(fèi)的技術(shù)問題。
2、第一方面,本申請實(shí)施例提供一種集群擴(kuò)縮容方法,包括:
3、獲取目標(biāo)集群中各集群節(jié)點(diǎn)的運(yùn)行指標(biāo);所述運(yùn)行指標(biāo)包括cpu總量、cpu使用量、內(nèi)存總量、內(nèi)存使用量和節(jié)點(diǎn)負(fù)載率;
4、根據(jù)所述運(yùn)行指標(biāo)計(jì)算所述目標(biāo)集群的集群分值因子;
5、根據(jù)所述集群分值因子,對所述目標(biāo)集群進(jìn)行多粒度的逐級擴(kuò)縮容;所述多粒度包括容器粒度、節(jié)點(diǎn)粒度和集群粒度。
6、在一個(gè)實(shí)施例中,所述根據(jù)所述集群分值因子,對所述目標(biāo)集群進(jìn)行多粒度的逐級擴(kuò)縮容,包括:
7、將所述集群分值因子與預(yù)設(shè)的擴(kuò)容閾值進(jìn)行比較,確定所述集群分值因子是否滿足擴(kuò)容條件;
8、若所述集群分值因子滿足擴(kuò)容條件,對所述目標(biāo)集群進(jìn)行多粒度的逐級擴(kuò)容;
9、將所述集群分值因子與預(yù)設(shè)的縮容閾值進(jìn)行比較,確定所述集群分值因子是否滿足縮容條件;
10、若所述集群分值因子滿足縮容條件,對所述目標(biāo)集群進(jìn)行多粒度的逐級縮容。
11、在一個(gè)實(shí)施例中,所述若所述集群分值因子滿足擴(kuò)容條件,對所述目標(biāo)集群進(jìn)行多粒度的逐級擴(kuò)容,包括:
12、若所述集群分值因子滿足擴(kuò)容條件,確定所述目標(biāo)集群內(nèi)是否存在空閑資源配額;
13、若所述目標(biāo)集群內(nèi)存在空閑資源配額,則根據(jù)所述空閑資源配額生成容器副本,并基于所述容器副本對所述目標(biāo)集群進(jìn)行容器粒度的擴(kuò)容;
14、若所述目標(biāo)集群內(nèi)不存在空閑資源配額,確定所述目標(biāo)集群在虛擬機(jī)資源池中對應(yīng)的第一可用區(qū)內(nèi)是否存在空閑虛擬機(jī)資源;
15、若所述第一可用區(qū)內(nèi)存在空閑虛擬機(jī)資源,基于所述第一可用區(qū)中的空閑虛擬機(jī)資源執(zhí)行節(jié)點(diǎn)添加操作,以對所述目標(biāo)集群進(jìn)行節(jié)點(diǎn)粒度的擴(kuò)容;
16、若所述第一可用區(qū)內(nèi)不存在空閑虛擬機(jī)資源,確定第二可用區(qū)內(nèi)是否存在空閑虛擬機(jī)資源;所述第二可用區(qū)是所述虛擬機(jī)資源池中除所述第一可用區(qū)之外的可用區(qū);
17、若所述第二可用區(qū)內(nèi)存在空閑虛擬機(jī)資源,基于所述第二可用區(qū)內(nèi)的空閑虛擬機(jī)資源創(chuàng)建新的集群,以對所述目標(biāo)集群進(jìn)行集群粒度的擴(kuò)容。
18、在一個(gè)實(shí)施例中,所述基于所述第二可用區(qū)內(nèi)的空閑虛擬機(jī)資源創(chuàng)建新集群,以對所述目標(biāo)集群進(jìn)行集群粒度的擴(kuò)容,包括:
19、基于所述第二可用區(qū)內(nèi)的空閑虛擬機(jī)資源創(chuàng)建新集群,并對所述新集群進(jìn)行注冊;
20、在所述新集群注冊完成后,獲取所述新集群的配置信息;
21、根據(jù)所述新集群的配置信息,對所述新集群進(jìn)行應(yīng)用部署,以對所述目標(biāo)集群進(jìn)行集群粒度的擴(kuò)容。
22、在一個(gè)實(shí)施例中,若所述第二可用區(qū)內(nèi)不存在空閑虛擬機(jī)資源,輸出可用資源不足的告警提示信息。
23、在一個(gè)實(shí)施例中,所述對所述目標(biāo)集群進(jìn)行多粒度的逐級擴(kuò)容之后,還包括:
24、更新對所述目標(biāo)集群的流量控制策略;
25、基于更新后的流量控制策略,返回并執(zhí)行所述獲取目標(biāo)集群中各集群節(jié)點(diǎn)的運(yùn)行指標(biāo)的步驟。
26、在一個(gè)實(shí)施例中,所述若所述集群分值因子滿足縮容條件,對所述目標(biāo)集群進(jìn)行多粒度的逐級縮容,包括:
27、若所述集群分值因子滿足縮容條件,縮減所述目標(biāo)集群的容器副本數(shù)量,以對所述目標(biāo)集群進(jìn)行容器粒度的縮容;
28、獲取所述目標(biāo)集群的集群資源使用率,根據(jù)所述集群資源使用率若確定對所述目標(biāo)集群進(jìn)行節(jié)點(diǎn)回收,則對所述目標(biāo)集群中的待縮減節(jié)點(diǎn)執(zhí)行節(jié)點(diǎn)刪除操作,并回收所述待縮減節(jié)點(diǎn)對應(yīng)的虛擬機(jī)資源,以對所述目標(biāo)集群進(jìn)行節(jié)點(diǎn)粒度的縮容;
29、獲取所述目標(biāo)集群對應(yīng)的全局資源使用率,根據(jù)所述全局資源使用率若確定對所述目標(biāo)集群進(jìn)行集群回收,更新待回收集群的流量控制策略進(jìn)行切流處理;
30、更新所述待回收集群的配置信息以移除所述待回收集群的應(yīng)用部署,并回收所述待回收集群的虛擬機(jī)資源,以對所述目標(biāo)集群進(jìn)行集群粒度的縮容。
31、第二方面,本申請實(shí)施例提供一種集群擴(kuò)縮容裝置,包括:
32、指標(biāo)監(jiān)聽模塊,用于獲取目標(biāo)集群中各集群節(jié)點(diǎn)的運(yùn)行指標(biāo);所述運(yùn)行指標(biāo)包括cpu總量、cpu使用量、內(nèi)存總量、內(nèi)存使用量和節(jié)點(diǎn)負(fù)載率;
33、指標(biāo)計(jì)算模塊,用于根據(jù)所述運(yùn)行指標(biāo)計(jì)算所述目標(biāo)集群的集群分值因子;
34、擴(kuò)縮容模塊,用于根據(jù)所述集群分值因子,對所述目標(biāo)集群進(jìn)行多粒度的逐級擴(kuò)縮容;所述多粒度包括容器粒度、節(jié)點(diǎn)粒度和集群粒度。
35、第三方面,本申請實(shí)施例提供一種電子設(shè)備,包括處理器和存儲有計(jì)算機(jī)程序的存儲器,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)第一方面所述的集群擴(kuò)縮容方法的步驟。
36、第四方面,本申請實(shí)施例提供一種非暫態(tài)的計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面所述的集群擴(kuò)縮容方法的步驟。
37、第五方面,本申請實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面所述的集群擴(kuò)縮容方法的步驟。
38、本申請實(shí)施例提供的集群擴(kuò)縮容方法、裝置、設(shè)備及存儲介質(zhì),通過獲取目標(biāo)集群中各集群節(jié)點(diǎn)的cpu總量、cpu使用量、內(nèi)存總量、內(nèi)存使用量和節(jié)點(diǎn)負(fù)載率等運(yùn)行指標(biāo)計(jì)算集群節(jié)點(diǎn)的集群分值因子,并根據(jù)計(jì)算出的集群分值因子,對目標(biāo)集群進(jìn)行容器粒度、節(jié)點(diǎn)粒度和集群粒度等多粒度的逐級擴(kuò)縮容,可以基于集群的資源使用情況和負(fù)載情況,自動進(jìn)行集群的擴(kuò)縮容,避免造成資源浪費(fèi),且可以進(jìn)行集群粒度的擴(kuò)縮容,減少了運(yùn)維工作量,有利于滿足業(yè)務(wù)對集群擴(kuò)縮容的即時(shí)需求。
1.一種集群擴(kuò)縮容方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的集群擴(kuò)縮容方法,其特征在于,所述根據(jù)所述集群分值因子,對所述目標(biāo)集群進(jìn)行多粒度的逐級擴(kuò)縮容,包括:
3.根據(jù)權(quán)利要求2所述的集群擴(kuò)縮容方法,其特征在于,所述若所述集群分值因子滿足擴(kuò)容條件,對所述目標(biāo)集群進(jìn)行多粒度的逐級擴(kuò)容,包括:
4.根據(jù)權(quán)利要求3所述的集群擴(kuò)縮容方法,其特征在于,所述基于所述第二可用區(qū)內(nèi)的空閑虛擬機(jī)資源創(chuàng)建新集群,以對所述目標(biāo)集群進(jìn)行集群粒度的擴(kuò)容,包括:
5.根據(jù)權(quán)利要求3所述的集群擴(kuò)縮容方法,其特征在于,若所述第二可用區(qū)內(nèi)不存在空閑虛擬機(jī)資源,輸出可用資源不足的告警提示信息。
6.根據(jù)權(quán)利要求2所述的集群擴(kuò)縮容方法,其特征在于,所述對所述目標(biāo)集群進(jìn)行多粒度的逐級擴(kuò)容之后,還包括:
7.根據(jù)權(quán)利要求2所述的集群擴(kuò)縮容方法,其特征在于,所述若所述集群分值因子滿足縮容條件,對所述目標(biāo)集群進(jìn)行多粒度的逐級縮容,包括:
8.一種集群擴(kuò)縮容裝置,其特征在于,包括:
9.一種電子設(shè)備,包括處理器和存儲有計(jì)算機(jī)程序的存儲器,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)權(quán)利要求1至7任一項(xiàng)所述的集群擴(kuò)縮容方法的步驟。
10.一種非暫態(tài)的計(jì)算機(jī)可讀存儲介質(zhì),其上存儲有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至7任一項(xiàng)所述的集群擴(kuò)縮容方法的步驟。