如果您精通K8s,且需要在应用容器启动前或者关闭前执行一些操作,例如运行前部署资源或者停止前优雅下线应用,您可以设置应用生命周期管理。本文介绍设置应用生命周期管理的操作步骤。
背景信息
您可以在SAE上对应用进行以下配置:
- 启动后处理(PostStart设置):应用容器创建成功后,运行前的任务,例如资源部署、环境准备等。
- 停止前处理(PreStop设置):应用容器被终止前的任务,例如优雅关闭应用程序、通知其他系统等。
- 优雅下线超时设置(TerminationGracePeriodSeconds):应用实例停止前,等待的时间,超时后SAE将强制停止实例。
在创建应用过程中配置应用生命周期管理
- 登录SAE控制台。
- 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击创建应用。
- 在应用基本信息页签设置应用相关信息,并单击下一步:应用部署配置。
- 在应用部署配置页签,选择技术栈语言和应用部署方式,设置部署参数。
- 在应用部署配置页面,展开应用生命周期管理设置面板,根据需要配置信息。
说明
- 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配置如下。
应用部署后,使用Webshell查看文件中是否存在Hello from the postStart handler
,如果存在,那么表示配置成功。
应用部署后配置应用生命周期管理
- 登录SAE控制台。
- 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击具体应用名称。
- 在应用详情页面的右上角,单击部署应用。
- 在部署应用页面下方,根据您的需求配置应用信息,并在配置完成后单击确认。
注意 单击确认后,该应用将会被重启,请在业务较少的时间段进行。
- 在部署应用页面,展开应用生命周期管理设置面板,根据需要配置信息。
说明
- 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配置如下。
应用部署后,使用Webshell查看文件中是否存在Hello from the postStart handler
,如果存在,那么表示配置成功。
问题反馈
如果您在使用SAE过程中有任何疑问,欢迎您扫描下面的二维码或搜索群号23198618,加入钉钉群与我们交流。