【发布时间】:2021-04-10 02:39:47
【问题描述】:
我想在容器成功完成或由于 pod 中的错误而终止后立即执行脚本。
我尝试通过将处理程序附加到容器生命周期事件(如 preStop),但它仅在容器因 API 请求或管理事件(如活性探测失败、抢占、资源争用等)而终止时调用。
参考 - Kubernetes 文档:https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
有没有其他方法可以解决这个问题?
【问题讨论】:
-
您可以尝试将您的工作负载放入 initContainer 并将您的脚本放入主容器。如果即使失败也让 InitContainer 脚本以代码 0 退出,则主容器会在 InitContainer 完成后立即启动。只执行一次 Job 是完美的选择。如果你需要循环这个过程,Deployment 会更好。
标签: kubernetes containers kubernetes-pod