文档

设置应用生命周期管理

更新时间:

如果您精通K8s,且需要在应用容器启动前或者关闭前执行相关操作,例如运行前部署资源或者停止前优雅下线应用,可以设置应用生命周期管理。

背景信息

SAE应用生命周期管理功能通过设置以下参数,使您在应用启动后和停止前都可以添加代码来执行自定义的操作。

  • 启动后处理(PostStart设置):应用容器创建成功后,运行前的任务,例如资源部署、环境准备等。

  • 停止前处理(PreStop设置):应用容器被终止前的任务,例如优雅关闭应用程序、通知其他系统等。

  • 优雅下线超时设置(TerminationGracePeriodSeconds):应用实例停止前的等待时间,超时后系统将删除该实例。

使用限制

仅适用于微服务应用。

操作步骤

在创建应用时设置应用生命周期管理

  1. 登录SAE控制台

  2. 在左侧导航栏,单击应用管理,在顶部菜单栏选择地域,然后在应用列表页面,单击创建应用

  3. 应用基本信息配置向导,应用类型选择微服务应用,配置相关信息,然后单击下一步:高级设置

  4. 高级设置配置向导,展开应用健康检查设置区域,配置相关信息,然后单击创建应用

    配置项

    说明

    启动后处理(PostStart设置)

    输入自定义的PostStart命令。

    停止前处理(PreStop设置)

    输入自定义的PreStop命令。

    优雅下线超时设置(TerminationGracePeriodSeconds)

    输入超时时间,默认为30秒,最大支持600秒。

    说明
    • 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。如下图所示,如果存在,表示配置成功。登录Webshell的具体操作,请参见查看版本实例

结果验证成功示例图