我基本上是在寻找一种机械警告来初始化带有警告的容器,我希望它在pod准备好之后运行(例如,响应readinessProbe)。是否可以将任何挂钩应用于readinessProbe,以便在第一次成功完成探测后可以触发作业?
预先感谢
答案 0 :(得分:0)
如果我错了,请纠正我,但是您想在容器准备好后运行作业。
定义作业时,它将在容器准备就绪时运行。您到底想执行什么?
答案 1 :(得分:0)
您可以使用一些短生命周期挂钩来挂起或说出容器。
例如
lifecycle:
postStart:
exec:
command: ["/bin/sh", "-c", "echo In postStart > /dev/termination-log"]
它是postStart钩子,所以我认为它会起作用。
但是Post钩子是异步函数,因此一旦容器启动,它就会在触发容器的入口点之前的某个时间被触发。
答案 2 :(得分:0)
我认为现在 vanilla k8s 中没有任何东西可以实现这一点。但是,有 2 个选项可以解决此问题:
如果可以多次重试初始化任务直到它成功,那么我将在您要初始化的 pod 的同时将任务作为作业启动。这是最简单的选择,但由于指数退避可能会有点慢。
如果初始化任务只在 pod 准备好后运行很重要,或者如果你不希望任务浪费时间失败和退避几次,那么你仍然应该将该任务作为作业运行,但是这是时候让它使用 k8s api 观察有问题的 pod,并在 pod 准备好后立即执行任务。