執行伸縮規則、手動添加或移出已有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臺。 |
執行中 | 伸縮活動通過條件檢驗,正在執行中。 彈性伸縮會根據伸縮最大實例數和伸縮最小實例數,自動調整需要擴張或收縮的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實例未能全部加入伸縮組時,彈性伸縮會保持ECS實例級事務的完整性,而非伸縮活動級事務的完整性,即只進行ECS實例級回滾,而不是伸縮活動級回滾。
當伸縮組內發生ECS實例回滾時,ECS實例的數量未達到預期值,可能導致無法滿足提供算力、維持監控指標值等要求。此時,您可以采取其他方式補齊ECS實例的數量,確保伸縮組滿足您的業務訴求。例如,手動執行伸縮規則、手動添加已有ECS實例、配置定時任務或報警任務再次觸發伸縮活動。
自動添加ECS實例
通過OpenAPI彈性創建ECS實例時,由于彈性伸縮借助阿里云RAM(Resource Access Management)服務,被回滾的ECS實例在創建成功后至自動釋放前這段時間仍然會被扣費。
例如,伸縮組需要增加5臺ECS實例,且5臺ECS實例需要加入負載均衡實例的后端服務器組。創建成功后,2臺成功加入,3臺加入失敗,則加入失敗的3臺ECS實例自動釋放。伸縮活動完成,但是狀態顯示為警告。
手動添加ECS實例
通過手動方式添加已有實例,被回滾的ECS實例會被自動移出伸縮組,但該ECS實例不會被釋放。