部署pod或CronJob,以便每分钟完成一次工作?

时间:2020-06-10 08:49:56

标签: kubernetes cron amazon-eks kubernetes-cronjob

我从Kubernetes开始,我对CronJob有疑问,在我的项目中,我需要每分钟启动一次cron作业。在许多教程中,人们使用了CronJob资源,我对其进行了设置,然后看到每隔一分钟就会创建一个pod来执行命令,然后将其销毁,而且是无限期的。 我想知道在我的情况下(每分钟)使用Kubernetes CronJob资源是否很有趣,因为它知道每分钟通过拉出图像等来创建pod的过程...。我发现该过程有点麻烦,拥有它不是更好吗?用传统方式执行cron的简单吊舱?

2 个答案:

答案 0 :(得分:2)

看看在pod内运行cronjob而不是kubernetes CronJob。这样一来,您不必费心每分钟启动一个新Pod。

答案 1 :(得分:1)

我更喜欢使用CronJobs将cronjobs作为本地Kubernetes工作负载运行。与在一个Pod中运行作业相比,作为CronJob运行可以使Kubernetes有效地管理资源。不仅可以轻松扩展作业数量,而且不限于一个节点。

但是,您必须处理失败的作业,重叠的作业,幂等,这些必须使用任何调度程序来解决。

此外,您还可以根据业务用例考虑使用专用吊舱。如果要实现发布者-订阅者,则运行专用容器是有意义的。对于简单的工作,CronJobs应该可以工作。

顺便说一句,您不必担心每次都拉图像。您可以将imagePullPolicy指定为IfNotPresent。

仅当图像不在本地时才拉图像。