本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
伸縮組內實例指ECS實例或ECI實例,實例從創建到釋放的過程可能處于不同的狀態,這些狀態組成了實例的生命周期。生命周期掛鉤功能可提供控制伸縮組內ECS實例或ECI實例創建和移出的能力,以便您靈活地管理實例的生命周期。本文介紹伸縮組內實例的生命周期管理方式、健康檢查以及可能的生命周期狀態。
伸縮組內實例的生命周期管理方式
根據ECS實例或ECI實例加入伸縮組的方式,ECS實例或ECI實例可以分為自動創建的實例和手動創建的實例,對應的生命周期管理方式如下表所示。
實例類型 | 添加方式 | 生命周期管理方式 |
自動創建的實例 | 根據伸縮組的實例配置信息來源自動創建的ECS實例或ECI實例。 | 彈性伸縮管理ECS實例或ECI實例的全生命周期,彈性擴張時負責創建ECS實例或ECI實例,彈性收縮時負責停止和釋放ECS實例或ECI實例。 |
手動創建的實例 | 由您手動創建ECS實例或ECI實例,然后再手動將創建好的ECS實例或ECI實例添加至伸縮組。 | 由是否將ECS實例或ECI實例的生命周期托管給伸縮組決定:
說明 支持將包年包月ECS實例添加至伸縮組,但不支持托管包年包月ECS實例。 |
伸縮組內實例的健康檢查
彈性伸縮管理ECS實例或ECI實例的生命周期時,會定期檢查ECS實例或ECI實例的運行狀態,如果發現一臺ECS實例或ECI實例未處于運行中狀態,則判定該ECS實例或ECI實例不健康,伸縮組會及時將不健康的ECS實例或ECI實例移出或者釋放。
ECS實例或ECI實例的運行狀態是ECS實例或ECI實例從創建開始到釋放結束的可能狀態,并非ECS實例或ECI實例在伸縮組內的服務狀態。
您可以在創建伸縮組時開啟或關閉健康檢查,也可以為已創建的伸縮組開啟或關閉健康檢查,具體操作,請參見配置伸縮組和修改伸縮組。
開啟健康檢查后,彈性伸縮管理伸縮組內ECS實例或ECI實例的生命周期時,會檢查ECS實例或ECI實例是否健康,并及時移出甚至釋放不健康的ECS實例或ECI實例,具體說明如下所示:
如果ECS實例或ECI實例由彈性伸縮自動創建,或者由您手動添加至伸縮組但生命周期已托管給伸縮組,彈性伸縮會移出并釋放ECS實例或ECI實例。
如果ECS實例或ECI實例由您手動添加至伸縮組且生命周期未托管給伸縮組,彈性伸縮會從伸縮組移出ECS實例或ECI實例,但不會釋放該ECS實例或ECI實例。
移出不健康的ECS實例或ECI實例時不受最小實例數的限制,可能導致伸縮組內實例數低于最小實例數。此時彈性伸縮會自動創建對應數量的ECS實例或ECI實例,使得伸縮組內實例數等于最小實例數。
警告請確保賬號可用額度充足。如果賬號欠費,所有后付費的ECS實例(包括按量付費實例和搶占式實例)都會停機,甚至被釋放。欠費后伸縮組內ECS實例狀態變化,請參見欠費說明。
伸縮組內實例的生命周期狀態
根據伸縮組是否添加生命周期掛鉤,伸縮組內ECS實例或ECI實例的生命周期狀態有所差異,具體說明如下所示。
ECS實例或ECI實例本身的生命周期是ECS實例或ECI實例從創建開始到釋放結束的過程,與伸縮組內ECS實例或ECI實例的生命周期不同,更多信息,請參見實例的生命周期。
本節以伸縮組內的ECS實例為例,展示伸縮組內實例的生命周期狀態關系和實例可能所處的服務狀態。
伸縮組未添加生命周期掛鉤時,伸縮組內ECS實例可能的生命周期狀態關系如下圖所示:
圖中括號內表示API中實例的狀態。通過API獲取伸縮組中實例狀態,請參見DescribeScalingInstances - 查詢伸縮組內ECS實例列表。
伸縮組中添加生命周期掛鉤時,伸縮組內ECS實例可能的生命周期狀態如下圖所示:
圖中括號內表示API中實例的狀態。通過API獲取伸縮組中實例狀態,請參見DescribeScalingInstances - 查詢伸縮組內ECS實例列表。
從加入伸縮組到移出伸縮組,伸縮組內ECS實例可能的服務狀態具體說明如下表所示。
下表服務狀態列下括號中的內表示在API中實例的狀態。通過API獲取伸縮組中實例狀態,請參見DescribeScalingInstances - 查詢伸縮組內ECS實例列表。
服務狀態 | 狀態說明 | 相關操作 |
加入中(Pending) | ECS實例正在加入伸縮組,包括加入負載均衡實例的后端服務器、RDS實例的訪問白名單等過程。 以下狀態的ECS實例可加入伸縮組:
|
|
加入掛起中(Pending:Wait) | 如果伸縮組內創建了適用于彈性擴張活動的生命周期掛鉤,ECS實例在加入伸縮組時被掛起并等待掛鉤超時結束。 您可以在掛起期間對ECS實例進行預裝軟件或其他自定義操作,例如,綁定輔助彈性網卡、添加Redis實例白名單等。 說明 伸縮組中添加生命周期掛鉤功能時,伸縮組內的ECS實例才會出現該服務狀態。 | |
服務中(InService) | ECS實例已成功加入伸縮組并正常提供服務。 如果出現以下任一種情況,ECS實例將不再保持服務中(In Service) 狀態:
| 服務中(In Service) 狀態的ECS實例可轉為停用狀態、備用狀態,或者手動移出或刪除實例,更多信息,請參見手動調整實例狀態。 |
備用中(Standby) | ECS實例不提供服務,負載均衡權重被置為零,負載均衡實例停止向ECS實例轉發流量,且彈性伸縮不管理ECS實例的生命周期,而是由您手動進行管理。 在備用狀態下,您可以進行排查ECS實例異常、更新ECS實例鏡像等操作,然后重新將ECS實例投入使用中,可再次加入伸縮組。 說明 備用中的ECS實例在重新投入使用前,不再屬于您應用程序的有效部分。 | |
保護中(Protected) |
| |
移出中(Removing) | ECS實例正在移出伸縮組,包括移出負載均衡實例的后端服務器、RDS實例的訪問白名單等過程。 移出后的ECS實例獨立于伸縮組內的ECS實例,您也可以將ECS實例加入到其他伸縮組中。 | |
移出掛起中(Removing:Wait) | 如果伸縮組內創建了適用于彈性收縮活動的生命周期掛鉤,ECS實例在移出伸縮組時被掛起并等待掛鉤超時時間結束。 您可以在掛起期間對ECS實例進行卸載軟件或其他自定義操作,例如,拷貝日志、清理數據等。 說明 伸縮組中添加生命周期掛鉤功能時,伸縮組內的ECS實例才會出現該服務狀態。 | |
停用中(Stopped) | 完成生命周期的管理后,ECS實例已進入停用狀態,不提供服務。ECS實例處于停用狀態時,vCPU、內存和固定公網IP會被回收,因此vCPU、內存和固定公網帶寬不再收費,但是云盤、彈性公網IP等資源仍然保留并收費。發生彈性擴張活動時,會優先啟用伸縮組中處于停用狀態的ECS實例。 說明 如果您需要將ECS實例轉為停用狀態,請確保在創建伸縮組時將實例回收模式設置為停機回收模式。 |