生命週期掛鈎可以暫停由Auto Scaling自動觸發的伸縮活動,使ECS執行個體或ECI執行個體處於掛起中的狀態(即等待的狀態),為您保留一段自訂動作的時間以滿足特定的部署需求和業務情境,例如預裝軟體等。直至生命週期掛鈎逾時結束後,Auto Scaling的伸縮活動才能繼續進行。本文為您介紹建立、修改、刪除、啟動或暫停生命週期掛鈎的方法。
前提條件
已建立伸縮組。具體操作,請參見配置伸縮組或CreateScalingGroup。
(可選)如果需要生命週期掛鈎被觸發時發出MNS通知,您需要提前建立MNS主題或者MNS隊列。具體操作,請參見:
建立生命週期掛鈎
生命週期掛鈎是一個管理伸縮組內ECS執行個體或ECI執行個體生命週期的工具。更多資訊,請參見生命週期掛鈎概述。每個伸縮組內最多可以建立10個生命週期掛鈎,本文以建立1個生命週期掛鈎為例。
- 登入Auto Scaling控制台。
- 在左側導覽列中,單擊伸縮組管理。
- 在頂部功能表列處,選擇地區。
- 找到待操作的伸縮組,選擇任一種方式開啟伸縮組詳情頁面。
- 在伸縮組名稱/ID列,單擊伸縮組ID。
- 在操作列,單擊查看詳情。
- 在頁面上方,單擊生命週期掛鈎頁簽。
在頁面左上方,單擊建立生命週期掛鈎。
在建立生命週期掛鈎頁面,完成生命週期掛鈎相關配置。
生命週期掛鈎相關參數說明如下表所示:
參數
描述
名稱
生命週期掛鈎名稱一旦確定就無法修改。長度為2~64個字元,以大小寫字母、數字或中文開頭,可包含半形句號(.)、底線(_)和短劃線(-)。
適用的伸縮活動類型
發生指定類型的伸縮活動時,生命週期掛鈎會被觸發並掛起ECS執行個體或ECI執行個體。支援的選項如下:
彈性收縮活動
彈性擴張活動
逾時時間
最小為30秒,最大為21600秒(6小時),必須為整數。預設值:1800秒。
說明請根據您業務生命週期掛鈎的處理時間,設定合理的逾時時間。如果處理時間超過逾時時間,則系統會執行預設執行策略。
預設執行策略
單個生命週期掛鈎情境
ECS執行個體或者ECI執行個體掛起狀態結束後的下一步執行動作。支援的選項如下:
繼續:擴容時,生命週期掛鈎會繼續向伸縮組加入新擴容的ECS執行個體或ECI執行個體;縮容時,生命週期掛鈎會繼續移出伸縮組中的ECS執行個體或ECI執行個體並將其釋放掉。
拒絕:擴容時,生命週期掛鈎會直接釋放新擴容出的ECS執行個體或ECI執行個體,該執行個體不會加入伸縮組;縮容時,生命週期掛鈎會繼續移出伸縮組中的ECS執行個體或ECI執行個體並將其釋放掉。
復原:擴容時,生命週期掛鈎會直接釋放新擴容出來的ECS執行個體或ECI執行個體,該執行個體不會加入伸縮組;縮容時,生命週期掛鈎會將移出的ECS執行個體或ECI執行個體重新加入該伸縮組。
多個生命週期掛鈎情境
伸縮組中多個生命週期掛鈎同時觸發的情境下,根據生命週期掛鈎設定的適用的伸縮活動類型不同,伸縮活動最終的執行結果也有所不同。
縮容活動:如果某個採用繼續策略的生命週期掛鈎觸發的等待狀態結束,會繼續等待其餘生命週期掛鈎執行結束, 其中只要有一個生命週期掛鈎執行結束且執行策略為拒絕或復原時,會主動提前結束等待並將剩餘未完成的掛鈎的執行原則設定為預設執行策略,此時所有完成的生命週期掛鈎中,只有存在執行策略為“復原”時,會停止縮容,進行復原,執行策略為“拒絕”時,仍會繼續縮容。
擴容活動:只有所有生命週期掛鈎都執行結束並且執行策略都為繼續才會繼續擴容,只要有一個生命週期掛鈎執行結束且執行策略為拒絕和復原時,會主動提前結束等待剩餘未完成的掛鈎,停止擴容進行復原(擴容時,“復原”與“拒絕”效果相同)。
(可選)通知方式為OOS模板情境
僅當生命週期掛鈎的通知方式配置為OOS模板時,在生命週期掛鈎掛起狀態逾時結束之前OOS模板執行結束,這時掛起狀態結束後的下一步執行動作取決於OOS模板的執行結果:
成功:針對彈性擴張活動,繼續向伸縮組加入該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執行個體仍可正常運行。
掛鈎期間執行的動作
生命週期掛鈎被觸發時,可以選擇通過指定的方式發出通知或者自動執行更多操作。支援的選項如下:
不通知:預設選項。
MNS主題:您需要選擇MNS主題。如果您填寫了通知標識,Auto Scaling每次推送訊息到通知對象時,會同時發送您預先指定的通知標識,便於管理和標記不同類別的通知資訊。
MNS隊列:您需要選擇MNS隊列。如果您填寫了通知標識,Auto Scaling每次推送訊息到通知對象時,會同時發送您預先指定的通知標識,便於管理和標記不同類別的通知資訊。
OOS模板:選擇執行的模板類型,並為模板設定參數。
模板類型包括公用模板和我的模板。Auto Scaling會使用您選擇的模板,對ECS執行個體進行自訂動作。
在設定參數時,請按照實際使用方式設定參數。如果您需要設定OOS扮演的RAM角色,請注意以下資訊:
RAM角色必須已受信OOS服務,即RAM角色的可信實體是阿里雲服務,受信服務為CloudOps Orchestration Service。具體操作,請參見建立OOS扮演的角色。
RAM角色必須擁有操作資源(ECS、ECI、Auto Scaling等)的許可權。許可權的策略可通過單擊查看授權策略擷取。為RAM角色添加授權策略的具體操作,請參見為OOS角色添加授權策略。
說明關於更多配置模板參數的案例,請參見生命週期掛鈎和OOS模板最佳實務概述。
事件匯流排:選擇事件匯流排後,當伸縮組發生擴縮容活動時,系統會產生不同類型的生命週期通知,您可以根據對應通知靈活識別和處理相應事件。
單擊確認。
建立完成後,您可以在伸縮組的生命週期掛鈎頁簽下查看已建立的生命週期掛鈎。
如果Auto Scaling自動觸發了適用於生命週期掛鈎的伸縮活動時,對應的ECS執行個體或ECI執行個體的狀態會變為掛起中,以ECS執行個體為例展示被掛起中執行個體的運行狀態,如下圖所示:
修改或刪除生命週期掛鈎
成功建立生命週期掛鈎後,您可以根據不同的業務需求,對該生命週期掛鈎進行修改或刪除操作。
- 登入Auto Scaling控制台。
- 在左側導覽列中,單擊伸縮組管理。
- 在頂部功能表列處,選擇地區。
在伸縮組管理頁面,找到待操作的伸縮組,單擊對應操作列的查看詳情。
在伸縮組詳情頁面上方,單擊生命週期掛鈎頁簽。
修改或刪除生命週期掛鈎。
修改生命週期掛鈎
如果生命週期掛鈎的屬性不再滿足當前業務需求,您可以修改一項或者多項屬性,而無需重新建立生命週期掛鈎。
找到待操作的生命週期掛鈎,在操作列下,單擊修改。
修改生命週期掛鈎的配置,然後單擊確認。
不支援修改生命週期掛鈎的名稱,其他生命週期掛鈎配置項的參數說明,請參見步驟7。
刪除生命週期掛鈎
如果您不再需要一個生命週期掛鈎,可以將其刪除,空出掛鈎配額。例如伸縮活動被掛起時,您可以按照本步驟刪除生命週期掛鈎。
重要如果生命週期掛鈎已經掛起一個ECS執行個體或ECI執行個體時,在刪除該生命週期掛鈎後,該ECS執行個體或ECI執行個體的等待狀態會提前結束。
找到待操作的單個或多個生命週期掛鈎,刪除生命週期掛鈎。
單項刪除:在單個生命週期掛鈎對應的操作列下,單擊刪除。
大量刪除:選中多個待操作的生命週期掛鈎,在生命週期掛鈎列表底部,單擊刪除。
在彈出的對話方塊中,單擊確定。
暫停或啟用生命週期掛鈎
建立生命週期掛鈎後預設為生效狀態。根據實際業務情境需要,您可以暫停或者重新啟用伸縮組的生命週期掛鈎功能。
- 登入Auto Scaling控制台。
- 在左側導覽列中,單擊伸縮組管理。
- 在頂部功能表列處,選擇地區。
在伸縮組管理頁面,找到待操作的伸縮組,單擊對應操作列的查看詳情。
在伸縮組詳情頁面上方,單擊生命週期掛鈎頁簽。
暫停或啟用生命週期掛鈎。
暫停生命週期掛鈎
如果您的業務暫時不需要生命週期掛鈎功能,您可以暫停正在使用的生命週期掛鈎。
找到待操作的生命週期掛鈎,在對應操作列下,單擊暫停。
在彈出的對話方塊中,單擊確定。
啟用生命週期掛鈎
如果您需要使用伸縮組的生命週期掛鈎功能,您可以重新啟用已暫停生命週期掛鈎。
找到待操作的生命週期掛鈎,在對應操作列下,單擊啟用。
在彈出的對話方塊中,單擊確定。
相關文檔
通過API方式建立一個或多個生命週期掛鈎。更多資訊,請參見CreateLifecycleHook。
通過API方式修改一個生命週期掛鈎。更多資訊,請參見ModifyLifecycleHook。
通過API方式刪除一個生命週期掛鈎。更多資訊,請參見DeleteLifecycleHook。
通過API方式提前結束伸縮活動的等待狀態。更多資訊,請參見CompleteLifecycleAction。