如果您精通K8s,且需要在應用程式容器啟動前或者關閉前執行相關操作,例如運行前部署資源或者停止前優雅下線應用,可以設定應用生命週期管理。
背景資訊
您可以在SAE上對應用進行以下配置。
啟動後處理(PostStart設定):應用程式容器建立成功後,運行前的任務,例如資源部署、環境準備等。
停止前處理(PreStop設定):應用程式容器被終止前的任務,例如優雅關閉應用程式、通知其他系統等。
優雅下線逾時設定(TerminationGracePeriodSeconds):應用執行個體停止前,等待的時間,逾時後SAE將強制停止執行個體。
操作步驟
在建立應用過程中配置應用生命週期管理
登入SAE控制台。
在左側導覽列,單擊應用列表,在頂部功能表列選擇地區,然後單擊建立應用。
在應用基本資料設定精靈,設定應用相關資訊,並單擊下一步:應用部署配置。
在應用部署配置設定精靈,選擇技術棧語言和應用部署方式,設定部署資訊。
展開應用生命週期管理設定面板,按需配置資訊。
說明命令列指令碼:首行為命令,次行為參數,多條參數以換行分割,避免出現空行。
配置啟動後處理(PostStart設定):
在命令列指令碼地區輸入自訂的PostStart命令。
配置停止前處理(PreStop設定):
在命令列指令碼地區輸入自訂的PreStop命令。
配置優雅下線逾時設定(TerminationGracePeriodSeconds):
在優雅下線逾時時間地區輸入逾時時間,最大支援5分鐘。
說明Poststart設定:一種容器鉤子。該鉤子在容器被建立後立刻觸發,通知容器它已經被建立。該鉤子不需要向其所對應的hook handler傳入任何參數。如果該鉤子對應的hook handler執行失敗,則該容器會被關閉,並根據該容器的重啟策略決定是否重啟該容器。更多資訊,請參見Container Lifecycle Hooks。
PreStop設定:一種容器鉤子。該鉤子在容器被刪除前觸發,其所對應的hook handler必須在刪除該容器的請求發送給Docker daemon之前完成。在該鉤子對應的hook handler完成後不論執行的結果如何,Docker daemon會發送SGTERN訊號量給Docker daemon刪除該容器。更多資訊,請參見Container Lifecycle Hooks。
單擊下一步:確認規格。
在確認規格設定精靈,查看您所建立應用的詳細資料以及配置費用情況,並單擊確認建立。
頁面會跳轉至建立完成設定精靈,您可以單擊應用詳情頁進入基本資料頁面。
驗證結果。
例如應用啟動前,需要將
Hello from the postStart handler
內容寫入檔案。PostStart配置如下:
/bin/sh -c echo "Hello from the postStart handler" > /usr/share/message
應用部署後,使用Webshell查看檔案中是否存在
Hello from the postStart handler
。如果存在,表示配置成功。
在部署應用過程中配置應用生命週期管理
重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。
更新應用配置的路徑因執行個體數的不同而不同。本文以執行個體數大於等於1為例,介紹如何配置目標功能。當執行個體數等於0時的操作路徑,請參見更新應用。
登入SAE控制台。
在左側導覽列,單擊應用列表,在頂部功能表列選擇地區,然後單擊具體應用程式名稱。
在基本資料頁面右上方,單擊部署應用。
展開應用生命週期管理設定面板,按需配置資訊。
說明命令列指令碼:首行為命令,次行為參數,多條參數以換行分割,避免出現空行。
配置啟動後處理(PostStart設定):
在命令列指令碼地區輸入自訂的PostStart命令。
配置停止前處理(PreStop設定):
在命令列指令碼地區輸入自訂的PreStop命令。
配置優雅下線逾時設定(TerminationGracePeriodSeconds):
在優雅下線逾時時間地區輸入逾時時間,最大支援5分鐘。
說明Poststart設定:一種容器鉤子。該鉤子在容器被建立後立刻觸發,通知容器它已經被建立。該鉤子不需要向其所對應的hook handler傳入任何參數。如果該鉤子對應的hook handler執行失敗,則該容器會被關閉,並根據該容器的重啟策略決定是否重啟該容器。更多資訊,請參見Container Lifecycle Hooks。
PreStop設定:一種容器鉤子。該鉤子在容器被刪除前觸發,其所對應的hook handler必須在刪除該容器的請求發送給Docker daemon之前完成。在該鉤子對應的hook handler完成後不論執行的結果如何,Docker daemon會發送SGTERN訊號量給Docker daemon刪除該容器。更多資訊,請參見Container Lifecycle Hooks。
配置完成後,單擊確認。
驗證結果。
例如應用啟動前,需要將
Hello from the postStart handler
內容寫入檔案。PostStart配置如下:
/bin/sh -c echo "Hello from the postStart handler" > /usr/share/message
應用部署後,使用Webshell查看檔案中是否存在
Hello from the postStart handler
。如果存在,表示配置成功。