配置生命周期
CAE提供了回调函数,在容器生命周期的特定阶段执行调用,比如容器在停止前希望执行某项操作,就可以注册相应的钩子函数。
操作步骤
- 登录CAE控制台。
- 在左侧导航栏中选择“组件配置”。
- 在“组件配置”页面上方的下拉框中选择需要操作的组件。
图1 选择组件
- 单击“生命周期管理”模块中的“编辑”按钮。
- 在右侧弹框中可选择配置“启动后处理”和“停止前处理”,两者可同时开启。
- 启动后处理:容器启动后触发,详情请参见表1。
- 停止前处理:容器停止前触发。设置停止前处理,确保升级或实例删除时可提前执行必要的清理任务。详细请参见表2。
如果“启动后处理”配置为while死循环,同时还配置了健康检查,可能会导致容器健康检查不通过,进而导致组件部署/升级失败。
表1 启动后处理-参数说明 参数
配置项参数
执行命令
在容器中执行指定的命令,配置为需要执行的命令。命令的格式为Command Args[1] Args[2]…(Command为系统命令或者用户自定义可执行程序,如果未指定路径则在默认路径下寻找可执行程序),如果需要执行多条命令,建议采用将命令写入脚本执行的方式。不支持后台执行和异步执行的命令。
例如,您需要利用启动后处理写文件,则请在命令行分别输入以下命令:/bin/bash -c echo 'Hello, postStart' > /lifecycle.txt
图2 配置启动后处理命令
表2 停止前处理-参数说明 参数
配置项参数
执行命令
在容器中执行指定的命令,配置为需要执行的命令。命令的格式为Command Args[1] Args[2]…(Command为系统命令或者用户自定义可执行程序,如果未指定路径则在默认路径下寻找可执行程序),如果需要执行多条命令,建议采用将命令写入脚本执行的方式。
例如,您需要利用停止前处理优雅关闭Nginx,则请在命令行分别输入以下命令:
/bin/bash -c nginx -s quit;while killall -0 nginx;do sleep 1;done
图3 配置停止前处理命令
- 单击“确定”,生命周期配置完成。
- 使配置生效。
- 如已完成组件部署,单击页面上方“生效配置”。在右侧弹框中确认配置信息,并单击“确定”,使配置生效。
- 如未完成组件部署,单击页面上方“配置并部署组件”,在弹框中单击“确定”,待组件部署执行完成后,配置生效。