我从Kubernetes开始,我对CronJob有疑问,在我的项目中,我需要每分钟启动一次cron作业。在许多教程中,人们使用了CronJob资源,我对其进行了设置,然后看到每隔一分钟就会创建一个pod来执行命令,然后将其销毁,而且是无限期的。 我想知道在我的情况下(每分钟)使用Kubernetes CronJob资源是否很有趣,因为它知道每分钟通过拉出图像等来创建pod的过程...。我发现该过程有点麻烦,拥有它不是更好吗?用传统方式执行cron的简单吊舱?
答案 0 :(得分:2)
看看在pod内运行cronjob而不是kubernetes CronJob。这样一来,您不必费心每分钟启动一个新Pod。
答案 1 :(得分:1)
我更喜欢使用CronJobs将cronjobs作为本地Kubernetes工作负载运行。与在一个Pod中运行作业相比,作为CronJob运行可以使Kubernetes有效地管理资源。不仅可以轻松扩展作业数量,而且不限于一个节点。
但是,您必须处理失败的作业,重叠的作业,幂等,这些必须使用任何调度程序来解决。
此外,您还可以根据业务用例考虑使用专用吊舱。如果要实现发布者-订阅者,则运行专用容器是有意义的。对于简单的工作,CronJobs应该可以工作。
顺便说一句,您不必担心每次都拉图像。您可以将imagePullPolicy指定为IfNotPresent。
仅当图像不在本地时才拉图像。