Serverless应用引擎 设置应用生命周期管理

By | 2021年4月22日

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

背景信息

您可以在SAE上对应用进行以下配置:

  • 启动后处理(PostStart设置):应用容器创建成功后,运行前的任务,例如资源部署、环境准备等。
  • 停止前处理(PreStop设置):应用容器被终止前的任务,例如优雅关闭应用程序、通知其他系统等。
  • 优雅下线超时设置(TerminationGracePeriodSeconds):应用实例停止前,等待的时间,超时后SAE将强制停止实例。

在创建应用过程中配置应用生命周期管理

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击创建应用
  3. 应用基本信息页签设置应用相关信息,并单击下一步:应用部署配置
  4. 应用部署配置页签,选择技术栈语言应用部署方式,设置部署参数。
  5. 应用部署配置页面,展开应用生命周期管理设置面板,根据需要配置信息。
    • 配置启动后处理(PostStart设置)

      命令行脚本区域输入自定义的PostStart命令。

      PostStart配置示例图

    • 配置停止前处理(PreStop设置)

      命令行脚本区域输入自定义的PreStop命令。

      PreStop配置示例

    • 配置优雅下线超时设置(TerminationGracePeriodSeconds)

      优雅下线超时时间区域输入超时时间,最大支持60秒。

      优雅下线超时时间

    说明

    • Poststart脚本:一种容器钩子。该钩子在容器被创建后立刻触发,通知容器它已经被创建。该钩子不需要向其所对应的hook handler传入任何参数。如果该钩子对应的hook handler执行失败,则该容器会被杀死,并根据该容器的重启策略决定是否重启该容器。详情请参见Container Lifecycle Hooks
    • PreStop脚本:一种容器钩子。该钩子在容器被删除前触发,其所对应的hook handler必须在删除该容器的请求发送给Docker daemon之前完成。在该钩子对应的hook handler完成后不论执行的结果如何,Docker daemon会发送SGTERN信号量给Docker daemon删除该容器。详情请参见Container Lifecycle Hooks

  6. 单击下一步:确认规格
  7. 确认规格页签,查看您所创建应用的详细信息以及配置费用情况,并单击确认创建
  8. 结果验证。

    例如应用启动前,需要将Hello from the postStart handler内容写入文件。

    PostStart配置如下。
    PostStart配置示例图

    应用部署后,使用Webshell查看文件中是否存在Hello from the postStart handler,如果存在,那么表示配置成功。

    结果验证成功示例图

应用部署后配置应用生命周期管理

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击具体应用名称。
  3. 在应用详情页面的右上角,单击部署应用
  4. 部署应用页面下方,根据您的需求配置应用信息,并在配置完成后单击确认
    注意 单击
    确认后,该应用将会被重启,请在业务较少的时间段进行。

  5. 部署应用页面,展开应用生命周期管理设置面板,根据需要配置信息。
    • 配置启动后处理(PostStart设置)

      命令行脚本区域输入自定义的PostStart命令。

      PostStart配置示例图

    • 配置停止前处理(PreStop设置)

      命令行脚本区域输入自定义的PreStop命令。

      PreStop配置示例

    • 配置优雅下线超时设置(TerminationGracePeriodSeconds)

      优雅下线超时时间区域输入超时时间,最大支持60秒。

      优雅下线超时时间

    说明

    • Poststart脚本:一种容器钩子。该钩子在容器被创建后立刻触发,通知容器它已经被创建。该钩子不需要向其所对应的hook handler传入任何参数。如果该钩子对应的hook handler执行失败,则该容器会被杀死,并根据该容器的重启策略决定是否重启该容器。详情请参见Container Lifecycle Hooks
    • PreStop脚本:一种容器钩子。该钩子在容器被删除前触发,其所对应的hook handler必须在删除该容器的请求发送给Docker daemon之前完成。在该钩子对应的hook handler完成后不论执行的结果如何,Docker daemon会发送SGTERN信号量给Docker daemon删除该容器。详情请参见Container Lifecycle Hooks

  6. 配置完成后单击确认
    注意 单击
    确认后,该应用将会被重启,请在业务较少的时间段进行。

  7. 结果验证。

    例如应用启动前,需要将Hello from the postStart handler内容写入文件。

    PostStart配置如下。
    PostStart配置示例图

    应用部署后,使用Webshell查看文件中是否存在Hello from the postStart handler,如果存在,那么表示配置成功。

    结果验证成功示例图

问题反馈

如果您在使用SAE过程中有任何疑问,欢迎您扫描下面的二维码或搜索群号23198618,加入钉钉群与我们交流。
SAE钉钉群2

请关注公众号获取更多资料

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注