本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
如果您精通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
。如果存在,表示配置成功。