執行伸縮規則、手動添加或移出已有ECS執行個體或ECI執行個體時,均會觸發伸縮活動實現擴張或收縮。觸發伸縮活動後,所有擴張和收縮動作都交由系統自動完成,本文以ECS類型的伸縮組為例,介紹系統完成伸縮活動時的流程、伸縮活動的狀態和執行個體復原。
伸縮活動流程
系統自動觸發伸縮活動流程
-
執行伸縮規則後自動建立ECS執行個體時的伸縮活動流程
-
判斷伸縮組的健康狀態和邊界條件(例如最大執行個體數或最小執行個體數)。
-
分配伸縮活動ID並執行伸縮活動。
-
建立ECS執行個體。
-
修改伸縮組內的執行個體數。
-
為ECS執行個體分配IP。
-
(可選)將ECS執行個體添加至RDS執行個體白名單。
-
啟動ECS執行個體,等待啟動完成。
-
(可選)將ECS執行個體添加至CLB執行個體(原SLB)後端伺服器組,權重設為建立伸縮配置時指定的權重。
-
伸縮活動完成,啟動冷卻。
-
-
執行伸縮規則後自動移出ECS執行個體時的伸縮活動流程
-
判斷伸縮組的健康狀態和邊界條件(例如最大執行個體數或最小執行個體數)。
-
分配伸縮活動ID並執行伸縮活動。
-
(可選)從CLB執行個體(原SLB)後端伺服器組移出ECS執行個體。
-
停止ECS執行個體,等待停止完成。
-
(可選)從RDS執行個體白名單移出ECS執行個體。
-
釋放ECS執行個體。
-
修改伸縮組內的執行個體數。
-
伸縮活動完成,啟動冷卻。
-
手動觸發伸縮活動流程
-
手動添加已有ECS執行個體時的伸縮活動流程
-
判斷伸縮組的健康狀態、邊界條件(例如最大執行個體數或最小執行個體數)、ECS執行個體的狀態及類型。
-
分配伸縮活動ID並執行伸縮活動。
-
將ECS執行個體加入伸縮組。
-
修改伸縮組內的執行個體數。
-
(可選)將ECS執行個體添加至RDS執行個體白名單。
-
(可選)將ECS執行個體添加至CLB執行個體(原SLB)後端伺服器組,權重設為當前伸縮組中已啟用的伸縮配置中指定的權重。
-
伸縮活動完成,啟動冷卻。
-
-
手動移出已有ECS執行個體時的伸縮活動流程
-
判斷伸縮組的健康狀態和邊界條件(例如最大執行個體數或最小執行個體數)。
-
分配伸縮活動ID並執行伸縮活動。
-
(可選)CLB執行個體(原SLB)停止向該ECS執行個體轉寄流量,60秒後ECS執行個體從CLB執行個體(原SLB)後端伺服器組移出。
-
(可選)從RDS執行個體白名單移出ECS執行個體。
-
修改伸縮組執行個體數。
-
從伸縮組移出ECS執行個體。
-
伸縮活動完成,啟動冷卻。
-
伸縮活動狀態
一個伸縮活動可能的狀態如下表所示。
|
伸縮活動狀態 |
說明 |
樣本 |
|
拒绝 |
伸縮活動在要求階段被拒絕,未執行擴張或收縮動作。 說明
您可以單擊拒绝狀態後的查看拒絕原因,瞭解伸縮活動的拒絕詳情。 |
情境:
結果:伸縮活動未通過條件檢驗,被拒絕執行,無後續流程。伸縮活動結束後,伸縮組內執行個體數仍然為100台。 |
|
执行中 |
伸縮活動通過條件檢驗,正在執行中。 Auto Scaling會根據伸縮最大執行個體數和伸縮最小執行個體數,自動調整需要擴張或收縮的ECS執行個體數量。 |
情境:
結果:伸縮活動通過條件檢驗,可以執行,但自動建立的ECS執行個體數量會調整為5台。伸縮活動結束後,伸縮組內執行個體數變為100台。 |
|
成功 |
伸縮活動執行完成,所有目標ECS執行個體加入或移出了伸縮組。 |
情境:
結果:伸縮活動通過條件檢驗,可以執行。伸縮活動結束後,伸縮組內執行個體數變為100台。 |
|
警告 |
伸縮活動執行完成,至少有一台目標ECS執行個體加入或移出了伸縮組,且至少有一台目標ECS執行個體未能加入或移出伸縮組。 成功加入伸縮組表明ECS執行個體的建立、加入CLB執行個體(原SLB)後端伺服器組、加入RDS訪問白名單三個步驟都成功,任一步驟失敗即認為該ECS執行個體加入伸縮組失敗。 說明
ECS執行個體加入伸縮組失敗時會觸發復原,更多資訊,請參見ECS執行個體復原。 |
情境:
結果:伸縮活動通過條件檢驗,可以執行,建立5台ECS執行個體。但由於CLB執行個體(原SLB)後端伺服器的配額為200,4台ECS執行個體加入後端伺服器組失敗,導致加入伸縮組失敗。伸縮活動結束後,伸縮組內執行個體數變為200。 |
|
失敗 |
伸縮活動執行完成,所有目標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執行個體自動釋放。伸縮活動完成,但是狀態顯示為警告。在伸縮活動頁面,可查看各伸縮活動的狀態(成功、警告、失敗)、變化後總執行個體數、開始時間、停止時間及描述。狀態為警告表示伸縮活動僅部分執行成功,單擊該活動可展開詳情面板,查看活動起因、狀態資訊和詳細資料。例如,因負載平衡後端伺服器配額超限,請求添加 5 個 ECS 執行個體但實際僅建立 2 個,系統將該主動標記為警告。
-
手動添加ECS執行個體
通過手動方式添加已有執行個體,被復原的ECS執行個體會被自動移出伸縮組,但該ECS執行個體不會被釋放。