執行伸縮規則、手動添加或移出已有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執行個體自動釋放。伸縮活動完成,但是狀態顯示為警告。
手動添加ECS執行個體
通過手動方式添加已有執行個體,被復原的ECS執行個體會被自動移出伸縮組,但該ECS執行個體不會被釋放。