本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
如果您精通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
。如果存在,表示配置成功。