System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機,特別是涉及一種擴縮容方法、裝置、計算機設備和存儲介質。
技術介紹
1、隨著云原生技術的發展,kubernetes已成為主流的容器編排工具。然而,其水平擴容器(horizontal?pod?autoscaling,hpa)功能僅支持基于單一維度的cpu或內存使用率來觸發pod(容器)的擴縮容操作。現代業務應用通常具有復雜架構,集成消息隊列、數值庫等多種服務。傳統的基于閾值的擴縮容未能結合歷史數值中的負載變化規律,對突發負載和復雜指標響應能力欠缺。hpa依賴單一資源指標作為容器擴縮容的觸發條件,單一的cpu或內存指標難以全面反映系統資源瓶頸,現有hpa功能只考慮單一維度的cpu或內存使用率觸發容器擴縮容操作,無法有效應對諸如消息堆積、數值庫連接池資源耗盡等復雜應用場景,均有可能導致業務中斷。
技術實現思路
1、基于此,提供一種擴縮容方法、裝置、計算機設備和存儲介質,用于解決水平擴容器依賴單一資源指標作為容器擴縮容的觸發條件難以全面反映系統資源瓶頸,無法有效應對諸如消息堆積、數值庫連接池資源耗盡等復雜應用場景的技術問題。
2、一方面,提供一種擴縮容方法,所述方法包括:
3、獲取應用名稱,對應每一應用名稱獲取受容器數量影響負載壓力的至少兩個監控指標,識別監控指標數值與負載壓力和容器數量的關聯關系;
4、收集目標應用的監控指標數值,根據所述目標應用的監控指標數值,設置所述目標應用的擴容閾值和縮容閾值,當所述目標應用的監控指標數值超過所述擴
5、設置所述應急擴容決策為所述目標應用的理想容器數量等于所述目標應用的所有監控指標對應的理想容器數量的最大值,每一監控指標對應的理想容器數量等于當前容器數量乘以當前監控指標數值后除以理想監控指標數值;
6、設置所述常規擴容決策為基于所述目標應用的所述監控指標數值與負載壓力和容器數量的關聯關系預設的對應所有監控指標數值的容器數量,結合預設最大容器數量和預設最小容器數量得出目標容器數量;
7、監測每一應用的監控指標數值,判斷每一應用的監控指標數值是否超過擴容閾值或低于縮容閾值,若是則執行所述應急擴容決策來調整容器數量,若否則執行所述常規擴容決策來調整容器數量。
8、在其中一個實施例中,所述獲取應用名稱,對應每一應用名稱獲取受容器數量影響負載壓力的至少兩個監控指標,識別監控指標數值與負載壓力和容器數量的關聯關系包括:
9、設置所述監控指標包括cpu使用率、內存使用率、mysql連接數、kafka延遲堆積數中的至少兩個;
10、收集目標應用的歷史監控指標數值及對應的負載壓力和容器數量形成歷史數據集,將所述歷史數據集輸入至xgboost模型中進行訓練,通過歷史監控指標數據學習負載壓力變化規律,識別出監控指標數值與負載壓力和容器數量的關聯關系,其中當容器數量上升時所述監控指標數值下降,當容器數量下降。
11、在其中一個實施例中,所述設置所述應急擴容決策為所述目標應用的理想容器數量等于所述目標應用的所有監控指標對應的理想容器數量的最大值,每一監控指標對應的理想容器數量等于當前容器數量乘以當前監控指標數值后除以理想監控指標數值包括:
12、當所述監控指標為目標指標時,設置目標指標數值最大閾值為max_target,設置目標指標數值最小閾值為min_target,設置目標指標數值理想數值為ideal_target,其中min_target≤ideal_target≤max_target,設置當前容器數量為current_pods,設置所述目標指標的當前數值為target_indicator,設置所述目標指標數值對應的理想容器數量為ideal_target_pods,則
13、獲取所述目標應用的所有監控指標對應的理想容器數量,對比獲取所述目標應用的所有監控指標對應的理想容器數量中的最大值,以所述目標應用的所有監控指標對應的理想容器數量中的最大值作為所述目標應用的理想容器數量。
14、在其中一個實施例中,所述獲取所述目標應用的所有監控指標對應的理想容器數量包括:
15、當所述監控指標為cpu使用率時,設置cpu使用率最大閾值為max_cpu_usage,設置cpu使用率最小閾值為min_cpu_usage,設置cpu使用率理想數值為ideal_cpu_usage,設置當前容器數量為current_pods,設置cpu使用率的當前數值為cpu_usage,設置所述cpu使用率對應的理想容器數量為ideal_cpu_pods,則
16、當所述監控指標為內存使用率時,設置內存使用率最大閾值為max_mem_usage,設置內存使用率最小閾值為min_mem_usage,設置內存使用率理想數值為ideal_mem_usage,設置當前容器數量為current_pods,設置內存使用率的當前數值為memory_usage,設置所述內存使用率對應的理想容器數量為ideal_mem_pods,則
17、當所述監控指標為mysql連接數時,設置mysql連接數最大閾值為max_mysql_connections,設置mysql連接數最小閾值為min_mysql_connections,設置mysql連接數理想數值為ideal_mysql_connections,設置當前容器數量為current_pods,設置mysql連接數的當前數值為mysql_connections,設置所述mysql連接數對應的理想容器數量為ideal_mysql_pods,則
18、當所述監控指標為kafka延遲堆積數時,設置kafka延遲堆積數最大閾值為max_kafka_lag,設置kafka延遲堆積數最小閾值為min_kafka_lag,設置kafka延遲堆積數理想數值為ideal_kafka_lag,設置當前容器數量為current_pods,設置kafka延遲堆積數的當前數值為kafka_lag,設置所述kafka延遲堆積數對應的理想容器數量為ideal_kafka_pods,則
19、在其中一個實施例中,若所述目標應用的所有監控指標為cpu使用率、內存使用率、mysql連接數、kafka延遲堆積數,則對比獲取所述目標應用的所有監控指標對應的理想容器數量中的最大值包括:
20、設置所述目標應用的理想容器數量為ideal_pods,則ideal_pods=max(ideal_cpu_pods,ideal_mem_pods,ideal_mysql_pods,ideal_kafka_pods)。
21、在其中一個實施例中,所述設置所述常規擴容決策為基于所述目標應用的所述監控指標數值與負載壓力和容器數量的關聯關系預設的對應所有監控指標數值的容器數量,結合預設最大容器數量和預設最小容器數量得出目標容器數量包括:
22本文檔來自技高網...
【技術保護點】
1.一種擴縮容方法,其特征在于,包括:
2.根據權利要求1所述的擴縮容方法,其特征在于,所述獲取應用名稱,對應每一應用名稱獲取受容器數量影響負載壓力的至少兩個監控指標,識別監控指標數值與負載壓力和容器數量的關聯關系包括:
3.根據權利要求1所述的擴縮容方法,其特征在于,所述設置所述應急擴容決策為所述目標應用的理想容器數量等于所述目標應用的所有監控指標對應的理想容器數量的最大值,每一監控指標對應的理想容器數量等于當前容器數量乘以當前監控指標數值后除以理想監控指標數值包括:
4.根據權利要求3所述的擴縮容方法,其特征在于,所述獲取所述目標應用的所有監控指標對應的理想容器數量包括:
5.根據權利要求4所述的擴縮容方法,其特征在于,若所述目標應用的所有監控指標為CPU使用率、內存使用率、MySQL連接數、Kafka延遲堆積數,則對比獲取所述目標應用的所有監控指標對應的理想容器數量中的最大值包括:
6.根據權利要求2所述的擴縮容方法,其特征在于,所述設置所述常規擴容決策為基于所述目標應用的所述監控指標數值與負載壓力和容器數量的關聯
7.根據權利要求2所述的擴縮容方法,其特征在于,所述方法還包括:
8.一種擴縮容裝置,其特征在于,所述裝置包括:
9.一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至7中任一項所述方法的步驟。
10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1至7中任一項所述的方法的步驟。
...【技術特征摘要】
1.一種擴縮容方法,其特征在于,包括:
2.根據權利要求1所述的擴縮容方法,其特征在于,所述獲取應用名稱,對應每一應用名稱獲取受容器數量影響負載壓力的至少兩個監控指標,識別監控指標數值與負載壓力和容器數量的關聯關系包括:
3.根據權利要求1所述的擴縮容方法,其特征在于,所述設置所述應急擴容決策為所述目標應用的理想容器數量等于所述目標應用的所有監控指標對應的理想容器數量的最大值,每一監控指標對應的理想容器數量等于當前容器數量乘以當前監控指標數值后除以理想監控指標數值包括:
4.根據權利要求3所述的擴縮容方法,其特征在于,所述獲取所述目標應用的所有監控指標對應的理想容器數量包括:
5.根據權利要求4所述的擴縮容方法,其特征在于,若所述目標應用的所有監控指標為cpu使用率、內存使用率、mysql連接數、kafka延遲堆積數,則對比獲...
【專利技術屬性】
技術研發人員:李曉婉,
申請(專利權)人:上海數禾信息科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。