全部產品
Search
文件中心

:伸縮組概述

更新時間:Aug 29, 2024

伸縮組是Auto Scaling的核心組件,用於管理一組擁有相同應用情境和執行個體類型的服務執行個體。通過伸縮組,您可以快速地橫向擴充叢集中的執行個體。此外,伸縮組還可以根據您的業務需求動態調整執行個體的數量,協助您有效降低成本。

為什麼使用伸縮組

  • 快速橫向擴充(高可用)

    您可以通過使用伸縮組快速橫向擴充您的服務叢集,通過增加服務的數量提升您的叢集承載能力。

  • 控製成本

    服務叢集橫向擴充意味著需要維持更多的計算資源,從而使成本增加,但是您的業務不是在任何時間都處於滿負載狀態,您可以根據實際的需求,利用雲端運算的彈效能力,在計算資源需求下降時減少資源的投入,從而控製成本。

支援的伸縮方案

方案一:保持固定數量且可用的執行個體

  • 適用情境:在不伸縮時,維持叢集的高可用。

  • 實現方式:為伸縮組開啟執行個體健全狀態檢查期望執行個體數

    在開啟伸縮組執行個體健全狀態檢查後,伸縮組會自動移除伸縮組中不健康的執行個體。如果目前執行個體數小於期望執行個體數,會自動觸發擴容,保證伸縮組中始終有固定數量且可用的執行個體。

  • 舉例說明

    例如您期望叢集可用商務服務數量為10,您可以為伸縮組設定期望執行個體數為10,伸縮組會自動觸發伸縮活動來維持可用服務數量為10。

方案二:定時自動調整

  • 適用情境:業務規律波動,即業務叢集資源佔用隨時間規律波動。

  • 實現方式:通過為伸縮組設定定時任務實現定時擴縮容。

    在業務叢集資源佔用升高的時間點,通過定時任務觸發擴張。相反的,在資源佔用降低的時間點,通過定時任務觸發收縮。完整步驟,請參見定時自動擴縮容ECS執行個體

  • 舉例說明

    例如您的業務叢集在每天傍晚7點時訪問量增加,在淩晨1點時降低,為了應對業務訪問需求的變化,您可以設定以下兩個定時任務。

    • 應對訪問量增加:設定傍晚7點的定時擴充任務,在每天傍晚7點,通過增加服務副本數提升叢集的承載能力。

    • 應對訪問量減少:設定淩晨1點的定時收縮任務,在每天淩晨1點,通過減少服務副本數從而提高資源使用率,減少不必要的成本支出。

方案三:通過資源佔用閾值伸縮(CPU佔用率、記憶體佔用率等)

  • 適用情境:突發業務波動情境。資源佔用達到某個閾值時觸發伸縮。

  • 實現方式

    叢集資源佔用率達到閾值時觸發擴縮容(警示任務)

    您可以為伸縮組設定警示任務,在資源佔用達到閾值後觸發警示,然後進行擴縮容活動。

    警示後直接增加、減少執行個體

    您可以為伸縮組設定警示任務,同時指定對應警示所執行的簡單規則,來實現觸發警示後進行擴縮容。

    效果說明

    如果配置觸發簡單規則,可以直接設定增加、減少N台執行個體或直接修改伸縮組內的執行個體數為N台。

    • 在叢集平均CPU佔用率大於80%時,增加N台執行個體。

    • 在叢集平均CPU佔用率小於70%時,減少N台執行個體。

    完整步驟,請參見根據業務負載自動擴縮容ECS執行個體

    警示後按照資源佔用階梯分級增加、減少執行個體

    您可以為伸縮組建立步進規則,並設定觸發該規則的警示任務,來實現觸發警示後按照配置好的資源佔用按照梯度進行擴縮容。

    重要

    ECI類型的伸縮組不支援配置步進規則

    效果說明

    在觸發警示任務後,按照叢集平均CPU佔用率的階梯分級擴縮容。

    • 當叢集平均CPU佔用率大於60%小於70%時減少1台執行個體。

    • 當叢集平均CPU佔用率大於30%小於60%時減少3台執行個體。

    • 當叢集平均CPU佔用率小於30%時減少5台執行個體。

    期望叢集資源佔用率維持在目標值(目標追蹤規則)

    您可以為伸縮組設定目標追蹤規則,實現將伸縮組的資源佔用維持在目標值附近。

    舉例說明

    為ECS伸縮組建立一個目標追蹤規則,設定平均CPU佔用率的目標值為80%,伸縮組會自動通過添加或刪除執行個體來將伸縮組平均CPU佔用率維持在80%附近。

  • 兩種實現方式的區別

    • 警示任務方案更加靈活和自訂。可以控制在觸發警示後增加/減少多少台執行個體,也可以根據資源佔用的階梯變化靈活設定擴縮容的數量。

    • 目標追蹤規則配置更加簡單,只需關注需要將資源佔用率維持在哪個數值。

方案四:自訂伸縮(手動伸縮)

如果前幾種方案都不滿足您的需求,您可以通過該方案實現自訂的伸縮方案。

伸縮組支援通過手動執行伸縮規則、手動修改執行個體數的方式觸發擴縮容活動。完整操作,請參見手動一鍵擴縮容ECS執行個體

說明

手動伸縮的方式支援API調用,您可以結合實際業務,通過編寫程式調用API自訂伸縮方案。

方案五:預測性伸縮

除了前幾種方案以外,伸縮組還提供預測未來資源需求自動調整的功能。

該方案通過配置預測規則的方式實現,您可以先使用只預測不伸縮的方式判斷預測的準確性和適用性,如果預測結果滿足您的需求,您可以為該預測規則開啟預測並伸縮,開啟此選項後,預測規則會根據預測產生的定時計劃自動建立預測任務,完成自動擴縮容。具體操作,請參見查看預測規則效果

注意事項

在使用伸縮組之前,請先確保您執行個體內部署的業務支援橫向擴充。

Auto Scaling是以橫向擴充的方式擴充執行個體,因此,您需要考慮在您的執行個體橫向擴充時是否會對您的叢集業務造成影響。

  • 資料一致性問題

    如果您的資料庫都在執行個體中部署,橫向擴充時可能會遇到資料不一致的問題。為瞭解決這一問題,建議調整架構設計,例如將資料庫獨立部署,讓所有執行個體共用同一個資料庫,從而實現服務的無狀態化。

  • 資料安全

    考慮到伸縮組中的執行個體會自動建立和釋放,如果在這些執行個體中儲存了資料,請確保實施適當的資料備份措施以保障資料安全。

如何使用伸縮組

開始使用

進階需求

業務部署:新擴容出的執行個體自動部署商務服務的軟體包

  • 通過使用帶有軟體包的鏡像實現自動部署

    • ECS伸縮組。

      構建一個包含您商務服務軟體包的自訂鏡像,同時將執行個體配置來源中的鏡像修改為該鏡像。

    • ECI伸縮組。

      為您的商務服務構建Docker鏡像,同時將執行個體配置來源中的鏡像修改為該鏡像。

  • 在執行個體啟動時自動執行部署指令碼

    • 執行個體自訂資料方案

      在使用ECS伸縮組時,您可以為執行個體設定自訂資料,在自訂資料中,執行部署服務軟體包的指令碼。具體方案介紹,請參見使用執行個體自訂資料自動設定ECS執行個體

    • 生命週期掛鈎方案

      在使用ECS伸縮組時,您可以為伸縮組設定生命週期掛鈎,在觸發擴容後,執行個體加入伸縮組之前,先在執行個體中執行部署服務軟體包的指令碼。具體方案介紹,請參見在ECS執行個體中自動執行指令碼

滾動升級:通過滾動升級的方式更新執行個體鏡像或執行指令碼

您可以通過滾動升級的方式更新伸縮組中執行個體的鏡像,也可以批量在伸縮組執行個體中執行指令碼,具體操作,請參見滾動升級

關聯雲資料庫:新擴容出的執行個體可以訪問資料庫

您可以為伸縮組設定同一安全性群組,或者設定自動將新擴容執行個體加入雲資料IP白名單,以實現新執行個體可以正常訪問到資料庫。

相關文檔

關聯負載平衡器:為伸縮組中的服務執行個體叢集設定統一訪問入口

如果您的伸縮組中的執行個體叢集使用負載平衡器作為訪問入口,您可以為伸縮組關聯該Server Load Balancer執行個體,在關聯負載平衡器之後,新建立的執行個體會自動加入到負載平衡器的後端伺服器組。

相關文檔

在擴縮容時執行自訂動作(掛載NAS、綁定EIP等)

您可以通過生命週期掛鈎,實現在執行個體加入伸縮組或移出伸縮組之前,完成自訂的操作,如掛載NAS,綁定EIP、執行自訂指令碼等。

相關文檔

設計縮容策略

在您的業務負載對資源需求降低時,伸縮組會根據您的策略觸發縮容活動,自動減少伸縮組中的資源數量,從而避免資源浪費。在縮容時,您可能會遇到如何控制縮容頻率、如何優雅縮容、如何自主選擇被縮容的執行個體等問題,您可以參考以下文檔。

相關文檔

進一步最佳化資源成本

在使用伸縮組後,您可以通過引入搶佔式執行個體和使用成本最佳化策略進一步降低成本。

相關文檔

容災&擴容成功率

在使用伸縮組時,您可能會遇到因可用性區域執行個體庫存不足導致的擴容失敗,您可以通過多可用性區域和多執行個體規格配置減少庫存不足的造成的擴容失敗。同時,您也可以通過均衡分布策略實現多可用性區域容災。

相關文檔

Auto ScalingKubernetes節點

使用Kubernetes實現節點的Auto Scaling。

相關文檔