运行 Cronjob 的 Kubernetes 集群仅触发一个 Pod

时间:2021-04-28 17:01:51

标签: kubernetes kubernetes-cronjob

我试图找到一个解决方案,如何在集群中运行由 2 个 pod 处理的作业。 该作业由 cronjob 调度程序运行,每(例如)15 分钟运行一次。这项工作是从 db 表中获取记录并对其进行处理。只提供了 READ 权限来访问表记录。我想看看,有没有办法在 k8s 中进行配置,只有一个 pod 运行该作业。 这样我想防止重复处理。 另一种方法是在持久性存储中有一个临时锁定文件,Pod 中的应用程序将锁定它并在处理后释放。 如果 k8s 中有任何开箱即用的解决方案,请告诉我。

1 个答案:

答案 0 :(得分:0)

这是使用传统的资源锁定机制实现的。在此过程中会创建一个锁文件,如果存在任何锁文件,则 Pod 不会运行。 这样一来,任何时候都只有一个 Pod 会运行该作业。

相关问题