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

ajsxfq5m  于 2023-05-16  发布在  Kubernetes
关注(0)|答案(1)|浏览(151)

我试图找到一个解决方案,如何运行一个由集群中的2个pod处理的作业。作业由cronjob调度程序运行,每15分钟运行一次。这个任务是从数据库表中获取记录并处理它。只提供了读取权限来访问表记录。我想看看,有没有办法在k8s中配置,只有一个pod运行作业。这样我就可以防止重复处理。另一种方法是在持久性存储中有一个临时锁文件,Pod中的应用程序对其加锁,并在处理后释放。如果有任何现成的解决方案与k8s,请告诉我。

vyswwuz2

vyswwuz21#

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

相关问题