【发布时间】:2018-12-29 21:16:00
【问题描述】:
我们正在使用 Kubernetes/go-lang 编写一个包裹递送跟踪器应用程序。一切都很好,直到我们遇到了我们有某些调度需求的路障,并且无法弄清楚该使用什么。用例是:
- 一旦包裹被分配并送出,应跟踪其位置。
- 如果包裹到达仓库3小时后仍未分配,我们应将其标记为“明天发货”。
- 一些常见的 cron 类型的作业。
对于#1,我们计划安排一个作业,该作业将在每 10 秒后轮询一次包裹的位置。但这是一次性的工作。包裹送达后。它应该会消失。
对于#2,我们计划安排一个定时/cron 作业,该作业将由我们的 API 触发。此作业将安排在仓库收到包裹后的 3 小时内完成。
我们上面的 #3 是用于各种内部目的的常用 cron 作业。
我们希望使用单一调度平台来满足所有这些类型的需求。
由于我们专门使用 Kubernetes,我们希望利用它的作业调度功能。但我们对此有一定的怀疑。
- 我们可以从源代码创建这些工作吗?如here 所述,这是可能的。但我不确定我们的系统管理员是否会允许我们这样做。
-
我读过 Kubernetes 中的工作队列,我们可以将工作推送到工作队列,消费者将为这些工作项创建工作。
但是,我不知道如何为该工作队列创建一个永久消费者守护进程,它将轮询该队列并为每个工作项创建作业。
另一个疑问是如何在这里安排简单的 cron 作业(上面的#3)。
我也听说过 Kala,但不确定这在 Kubernetes 世界中是否适合。
任何参考、指针、链接或建议都将受到高度赞赏,因为我对 Kubernetes/Golang 很陌生,而且在谷歌上也找不到任何具体的东西。
【问题讨论】:
标签: cron kubernetes scheduled-tasks job-scheduling kubernetes-mesos