全部產品
Search
文件中心

:伸縮活動概述

更新時間:Jun 30, 2024

執行伸縮規則、手動添加或移出已有ECS執行個體或ECI執行個體時,均會觸發伸縮活動實現擴張或收縮。觸發伸縮活動後,所有擴張和收縮動作都交由系統自動完成,本文以ECS類型的伸縮組為例,介紹系統完成伸縮活動時的流程、伸縮活動的狀態和執行個體復原。

伸縮活動流程

系統自動觸發伸縮活動流程

  • 執行伸縮規則後自動建立ECS執行個體時的伸縮活動流程

    1. 判斷伸縮組的健康狀態和邊界條件(例如最大執行個體數或最小執行個體數)。

    2. 分配伸縮活動ID並執行伸縮活動。

    3. 建立ECS執行個體。

    4. 修改伸縮組內的執行個體數。

    5. 為ECS執行個體分配IP。

    6. (可選)將ECS執行個體添加至RDS執行個體白名單。

    7. 啟動ECS執行個體,等待啟動完成。

    8. (可選)將ECS執行個體添加至CLB執行個體(原SLB)後端伺服器組,權重設為建立伸縮配置時指定的權重。

    9. 伸縮活動完成,啟動冷卻。

  • 執行伸縮規則後自動移出ECS執行個體時的伸縮活動流程

    1. 判斷伸縮組的健康狀態和邊界條件(例如最大執行個體數或最小執行個體數)。

    2. 分配伸縮活動ID並執行伸縮活動。

    3. (可選)從CLB執行個體(原SLB)後端伺服器組移出ECS執行個體。

    4. 停止ECS執行個體,等待停止完成。

    5. (可選)從RDS執行個體白名單移出ECS執行個體。

    6. 釋放ECS執行個體。

    7. 修改伸縮組內的執行個體數。

    8. 伸縮活動完成,啟動冷卻。

手動觸發伸縮活動流程

  • 手動添加已有ECS執行個體時的伸縮活動流程

    1. 判斷伸縮組的健康狀態、邊界條件(例如最大執行個體數或最小執行個體數)、ECS執行個體的狀態及類型。

    2. 分配伸縮活動ID並執行伸縮活動。

    3. 將ECS執行個體加入伸縮組。

    4. 修改伸縮組內的執行個體數。

    5. (可選)將ECS執行個體添加至RDS執行個體白名單。

    6. (可選)將ECS執行個體添加至CLB執行個體(原SLB)後端伺服器組,權重設為當前伸縮組中已啟用的伸縮配置中指定的權重。

    7. 伸縮活動完成,啟動冷卻。

  • 手動移出已有ECS執行個體時的伸縮活動流程

    1. 判斷伸縮組的健康狀態和邊界條件(例如最大執行個體數或最小執行個體數)。

    2. 分配伸縮活動ID並執行伸縮活動。

    3. (可選)CLB執行個體(原SLB)停止向該ECS執行個體轉寄流量,60秒後ECS執行個體從CLB執行個體(原SLB)後端伺服器組移出。

    4. (可選)從RDS執行個體白名單移出ECS執行個體。

    5. 修改伸縮組執行個體數。

    6. 從伸縮組移出ECS執行個體。

    7. 伸縮活動完成,啟動冷卻。

伸縮活動狀態

一個伸縮活動可能的狀態如下表所示。

伸縮活動狀態

說明

樣本

拒絕

伸縮活動在要求階段被拒絕,未執行擴張或收縮動作。

說明

您可以單擊拒絕狀態後的查看拒絕原因,瞭解伸縮活動的拒絕詳情。

情境

  • 伸縮組的最大執行個體數為100台

  • 伸縮組內已有100台ECS執行個體

  • 伸縮規則要求自動建立10台ECS執行個體

結果:伸縮活動未通過條件檢驗,被拒絕執行,無後續流程。伸縮活動結束後,伸縮組內執行個體數仍然為100台。

執行中

伸縮活動通過條件檢驗,正在執行中。

Auto Scaling會根據伸縮最大執行個體數和伸縮最小執行個體數,自動調整需要擴張或收縮的ECS執行個體數量。

情境

  • 伸縮組的伸縮最大執行個體數為100台

  • 伸縮組內已有95台ECS執行個體

  • 伸縮規則要求自動建立10台ECS執行個體

結果:伸縮活動通過條件檢驗,可以執行,但自動建立的ECS執行個體數量會調整為5台。伸縮活動結束後,伸縮組內執行個體數變為100台。

成功

伸縮活動執行完成,所有目標ECS執行個體加入或移出了伸縮組。

情境

  • 伸縮組的最大執行個體數為100台

  • 伸縮組內已有90台ECS執行個體

  • 伸縮規則要求自動建立10台ECS執行個體

結果:伸縮活動通過條件檢驗,可以執行。伸縮活動結束後,伸縮組內執行個體數變為100台。

警告

伸縮活動執行完成,至少有一台目標ECS執行個體加入或移出了伸縮組,且至少有一台目標ECS執行個體未能加入或移出伸縮組。

成功加入伸縮組表明ECS執行個體的建立、加入CLB執行個體(原SLB)後端伺服器組、加入RDS訪問白名單三個步驟都成功,任一步驟失敗即認為該ECS執行個體加入伸縮組失敗。

說明

ECS執行個體加入伸縮組失敗時會觸發復原,更多資訊,請參見ECS執行個體復原

情境

  • 伸縮組已關聯CLB執行個體(原SLB),建立成功的ECS執行個體會自動加入後端伺服器組

  • CLB執行個體(原SLB)的後端伺服器配額為200

    說明

    更多資訊,請參見使用限制

  • 伸縮組的最大執行個體數為300台

  • 伸縮組內已有199台ECS執行個體,且已加入CLB執行個體(原SLB)後端伺服器組

  • 伸縮規則要求自動建立5台ECS執行個體

結果:伸縮活動通過條件檢驗,可以執行,建立5台ECS執行個體。但由於CLB執行個體(原SLB)後端伺服器的配額為200,4台ECS執行個體加入後端伺服器組失敗,導致加入伸縮組失敗。伸縮活動結束後,伸縮組內執行個體數變為200。

失敗

伸縮活動執行完成,所有目標ECS執行個體未能加入或移出伸縮組。

情境

  • 伸縮組所在地區中,伸縮配置中的執行個體規格已無庫存

  • 伸縮組的最大執行個體數為100台

  • 伸縮組內已有95台ECS執行個體

  • 伸縮規則要求自動建立5台ECS執行個體

結果:伸縮活動通過條件檢驗,可以執行,但因庫存不足建立失敗。伸縮活動結束後,伸縮組內執行個體數仍然為95台。

ECS執行個體復原

伸縮活動中ECS執行個體未能全部加入伸縮組時,Auto Scaling會保持ECS執行個體級事務的完整性,而非伸縮活動級事務的完整性,即只進行ECS執行個體級復原,而不是伸縮活動級復原。

重要

當伸縮組內發生ECS執行個體復原時,ECS執行個體的數量未達到預期值,可能導致無法滿足提供算力、維持監控指標值等要求。此時,您可以採取其他方式補齊ECS執行個體的數量,確保伸縮組滿足您的業務訴求。例如,手動執行伸縮規則、手動添加已有ECS執行個體、配置定時任務或警示任務再次觸發伸縮活動。

  • 自動添加ECS執行個體

    通過OpenAPI彈性建立ECS執行個體時,由於Auto Scaling藉助阿里雲RAM(Resource Access Management)服務,被復原的ECS執行個體在建立成功後至自動釋放前這段時間仍然會被計費。

    例如,伸縮組需要增加5台ECS執行個體,且5台ECS執行個體需要加入Server Load Balancer執行個體的後端伺服器組。建立成功後,2台成功加入,3台加入失敗,則加入失敗的3台ECS執行個體自動釋放。伸縮活動完成,但是狀態顯示為警告伸縮活動

  • 手動添加ECS執行個體

    通過手動方式添加已有執行個體,被復原的ECS執行個體會被自動移出伸縮組,但該ECS執行個體不會被釋放。