【发布时间】:2019-07-24 00:36:44
【问题描述】:
我对云开发有点陌生,所以请放轻松。我什至不确定我要问的是可能。
我试图弄清楚如何安排一个作业(可能每两个小时)来执行一个工作进程,该进程将被打包在一个自定义 Docker 映像中。工作进程将通过连接到应用程序的数据存储来检查它需要执行的任何“计划工作”(根据应用程序用户的请求),然后执行任何未完成的工作。完成后,我希望在下一个计划间隔之前将所有内容都拆除,因此在停机期间我不会产生任何费用。
一个复杂的问题是计划的工作将是不同的类型。理想情况下,我希望每个类型启动我的图像的一个实例,将该类型传递给工作进程,这样它就知道它正在处理什么类型的预定工作。一旦它完成了它的预定工作类型,它就可以退出,即使其他容器仍在运行它们的预定工作。
要求摘要
- 完全控制 Docker 映像。我有自定义工具和代码需要放入图片中。
- 基于时间的计划来促使执行 Docker 映像中的代码。
- 计划的工作执行可能需要相当长的时间(可能长达 10 或 15 分钟)才能完成。
- 自定义、程序控制的缩放和分区创建 x 个 Docker 容器,每个容器都有自己的计划工作类型。 x 的确定将基于应用程序数据存储中的数据。
- 在停机期间,绝对不会产生任何费用。
我尝试过/考虑过的事情
K8s
似乎要求集群始终运行。我也不清楚如何让集群中的不同节点负责不同类型的计划工作。
AppEngine 和 Cloud Scheduler
由于我的定制 Docker 映像,我需要使用灵活环境。根据this,这意味着我必须让至少一个实例始终运行。
同样,我不确定如何扩展它,以便不同的实例处理不同类型的预定工作。
问题
所以,我对这一切有几个问题:
- 首先,GCP 是否也能做到这一点?到目前为止,我的研究表明并非如此。
- 尽可能接近我的要求的最佳方法是什么?
【问题讨论】:
标签: docker google-cloud-platform cloud