在多个 Kubernetes Pod 中只执行一次

Dys*_*son 0 java docker kubernetes

我对拥有多个 Kubernetes Pod 的优化有一个普遍的问题。我有一个 Java 应用程序service A,它每 5 分钟检查service B一次执行条件task T。每5分钟,如果满足条件,我想task T运行一次。

然而,service A目前有 4 个 pod 运行,每个 pod 都service B单独检查,并task T在满足条件时执行。但只要满足task T的条件,只需执行一次service B

我想知道是否有一种方法可以让不同的 podservice A进行协调,并且task T每 5 分钟只执行一次(如果条件成立),而不是每个 pod 执行 4 次。

谢谢你!

zer*_*er0 6

请问为什么您需要通过 4 个 pod 部署来运行这个明显周期性的服务?

更好的想法是使用CronJob每 5 分钟运行一次并执行您想要的任务。每次CronJob运行时,它都会生成一个 pod,它将检查 上的条件Service B,如果需要则运行任务并自行退役。

我不明白为什么你想要有 4 个 pod 的服务,而这基本上是一个 cron 作业。

您可以在CronJobs 此处找到详细信息。