当作业控制的 pod 由于内存不足错误而失败时,如何最好地在重新启动 pod 之前增加请求的内存?

How best, when a pod controlled by a job fails due to out of memory error, to increase the requested memory before rebooting the pod?

我想知道是否有任何方法可以在作业控制的 pod 失败的情况下启动另一个作业,这将更新控制该 pod 的内存请求值的作业,可能会在 pod 之前将其加倍重新启动?

我查找了 PreStop 容器生活方式挂钩、运算符等。目前最好的解决方案似乎是一个自定义控制器,它运行在所有作业上,如果它们处于重启状态或类似状态并且具有特定label 然后它会加倍他们的内存请求。

您可以在 AutoRecreate 模式下使用 Vertical Pod Autoscaler
它支持作业、CronJobs 以及部署。

请注意limitations,例如它不能在CPU或内存上与HPA一起使用,并且VPA不能驱逐pods而不是运行 ] 在控制器下。