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