介紹
期望執行個體數是指伸縮組内想要保持的ECS執行個體總數,可以在建立伸縮組時設定,其數值介于伸縮組最小執行個體數和最大執行個體數之間,各種伸縮模式都會改變這個值。伸縮組在設定期望執行個體數後會自動支援伸縮活動并行執行。
通過設定期望執行個體數可以解決以下問題:
- 對于以往的伸縮組,使用者需要自己維護伸縮組内執行個體數,如果伸縮活動出現失敗,使用者需要手動重試。
- 伸縮組同一時間隻支援一個伸縮活動,伸縮活動執行可能比較耗時,這期間使用者無法調整伸縮組執行個體數。
- 串行執行伸縮活動導緻伸縮組的使用率低。比如擴縮容進行時,健康檢查觸發的伸縮活動就無法執行。
期望執行個體數的變化規則
- 期望執行個體數的值始終介于伸縮組最小執行個體數和最大執行個體數之間。
- 使用者建立和修改伸縮組時可以指定期望執行個體數。
- 使用者如果隻修改伸縮組最大執行個體數或最小執行個體數,期望執行個體數會自動調整介于兩者之間,比如期望執行個體數為2,隻調整最小執行個體數為3,則修改完成後desire值和最小執行個體數都為3.
- 伸縮組會定時檢查目前期望執行個體數與目前伸縮組中服務中、保護中和備用中的總執行個體數(以下簡稱穩态執行個體數)的差距來觸發期望執行個體數檢查任務,如果期望執行個體數大于穩态執行個體數則觸發擴容任務,反之觸發縮容任務。
- 手動執行伸縮規則和定時任務将不再直接觸發擴縮容執行個體,而是修改伸縮組的期望執行個體數。
- 報警任務和手動添加執行個體,在擴縮容的同時會修改期望執行個體數。
- 手動移出/移除執行個體,可以設定DecreaseDesiredCapacity參數來決定縮容的同時是否修改期望執行個體數,當DecreaseDesiredCapacity設定為true時,執行個體會被移出/移除并且期望執行個體數會相應的減少;反之,期望執行個體數不會變化。
- 手動執行伸縮規則、定時任務、報警任務的場景下,新的期望執行個體數會以穩态執行個體數為基礎進行變化。比如目前伸縮組期望執行個體數為2,目前穩态執行個體數為2,使用者執行擴容3台的伸縮規則,則新的期望執行個體數為目前穩定态執行個體數和擴容變化數之和,結果為5;如果目前期望執行個體數為2,目前穩态執行個體數為1,使用者執行擴容2台的伸縮規則,則新的期望執行個體數為目前穩定态執行個體數和擴容變化數之和,結果為3。
- 手動添加、手動移出/移除執行個體時,新的期望執行個體數會在目前期望執行個體數上做相應減少。比如目前期望執行個體數為5,穩态執行個體數為3,手動添加1台執行個體,新的期望執行個體數為6。
并行伸縮活動介紹
- 隻有設定了期望執行個體數的伸縮組才可以支援伸縮活動并行。
- 目前支援的并行伸縮活動有手動執行伸縮規則、定時任務、期望執行個體數檢查任務、執行個體健康檢查任務、最大最小值檢查任務、手動移除/移出、手動添加執行個體,其中期望執行個體數檢查任務、執行個體健康檢查任務、最大最小值檢查任務為系統自動觸發。其餘伸縮活動為非并行伸縮活動,常見的非并行伸縮活動為報警任務。
- 并行伸縮活動執行時,可以允許其他并行伸縮活動執行,比如目前伸縮組在擴容時,使用者可以手動移除執行個體。
- 非并行伸縮活動執行時, 支援并行的伸縮活動會被拒絕執行。
舉例說明
- 場景一 連續執行不同的伸縮規則,沒有期望執行個體數檢查任務觸發的情況下,檢視期望執行個體數變化。目前期望執行個體數為4,穩态執行個體數為4,先執行增加4台的伸縮規則,檢視伸縮活動詳情如圖:
彈性伸縮組支援設定期望執行個體數
目前穩态執行個體為4,執行增加4台,是以期望執行個體數由4變為8。
緊接着執行增加1台執行個體的伸縮規則,檢視伸縮活動詳情如圖:
目前穩态執行個體為4,執行增加1台,是以期望執行個體數由8變為5。
- 場景二 執行兩次不同的伸縮規則,檢視伸縮活動并行情況。目前期望執行個體數為3,穩态執行個體數為3,先執行增加1台伸縮規則,期望值變為4
彈性伸縮組支援設定期望執行個體數
之後等待觸發期期望執行個體數檢查任務
接着執行移除2台執行個體的伸縮規則。由于上個擴容伸縮活動沒有執行完,是以穩态執行個體數還是為3,期望值變為1。
之後等待觸發期望執行個體數檢查任務。
2個任務同時在進行中
由于目前期望執行個體數是1,當擴容2台的伸縮活動執行完成後穩态執行個體變為2,又會觸發期望執行個體數檢查任務,最終滿足期望執行個體數等于穩态執行個體數。
- 場景三 非并行任務執行場景。目前報警任務正在觸發,報警任務為非并行伸縮活動
彈性伸縮組支援設定期望執行個體數
執行伸縮規則,由于有非并行伸縮活動在執行是以被拒絕
使用須知
- 伸縮組支援期望執行個體數的功能目前在控制台灰階執行中。
- 沒有設定過期望執行個體數的伸縮組無法開啟這個功能。
- 設定期望執行個體數後的伸縮組無法将此參數置空。
與未設定期望執行個體數伸縮組的差異
- 使用者不需要自行維護伸縮組内執行個體數,設定期望執行個體數後,伸縮組會自動擴縮容以滿足期望執行個體數,如果擴縮容失敗系統也會自動重試。
- 手動執行伸縮規則、定時任務将不再直接觸發擴縮容執行個體,而是會修改伸縮組的期望執行個體數。之後期望執行個體數檢查任務會自動掃描穩态執行個體數和期望執行個體數之間的差異進而觸發擴縮容任務。
- 手動移除/移出執行個體、手動添加執行個體和報警任務會直接觸發擴縮容并修改期望執行個體數。
- 伸縮組支援并行執行伸縮活動,具體支援場景參見上面的并行伸縮活動介紹。