参考:https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
大多数编程语言框架都会提供组件生使周期管理钩子,与此类似,kubernetes通过容器的生命周期钩子管理容器。首先要为钩子注册处理句柄,当容器生命周期发生变化时,如创建、销毁时,触发为钩子注册的句柄的执行。
当前,kubernetes支持的钩子有两种:
PostStart
当容器被创建后,为这个钩子注册的处理句柄立刻执行,但是不保证钩子的处理句柄在容器的ENTRYPOINT之前执行。无法向此钩子的处理句柄传递参数。
PreStop
在容器被终止这之前执行,如果此操作没有执行完成,那么它会阻塞kubelet发送删除容器的操作。无法向此钩子的处理句柄传递参数。
钩子处理句柄的实现也有两种方式:
Exec
容器内的命令、脚本、及其它可执行程序。命令本身处于与窗口相同的namespace与cgroup之下ÿ