我的项目中有3个批次。我已经把所有3批次在一个单一的码头图像。现在,为了运行任何特定的批处理,我使用命令行参数调用docker run,shell脚本会考虑这个参数,并在映像中启动相应的批处理。
现在,为了在不同的时间段调度这3个批次,我可以使用3个命令和适当的参数来处理相同的docker图像。但是如何部署(应用程序引擎或gke),从哪里触发命令?在云调度程序中,只有发布订阅/ HTTP Url触发选项可用。所以找不到任何出路。
你能建议一下吗?
提前谢谢。
致以敬意,
阿林达姆
发布于 2019-03-17 08:35:10
您的问题提出了一些问题,但是--首先--您为什么希望使用App Engine或GKE?
IIUC您可能可以使用Kubernetes CronJobs解决您的问题:https://cloud.google.com/kubernetes-engine/docs/how-to/cronjobs
Cloud Scheduler使用HTTP和发布/订阅是因为这为服务提供了触发其事件的通用方法。如果你想使用Cloud Scheduler,你可以开发一个配套的(也称为"sidecar")镜像,它会暴露一个HTTP接口,当调用时,它会对你的容器运行正确的命令。然后,您可以编写Cloud Scheduler来调用您的时间表上的sidecars,它们反过来调用您的容器镜像。在这里的Cloud Scheduler示例中使用了与此方法类似的方法:https://cloud.google.com/scheduler/docs/start-and-stop-compute-engine-instances-on-a-schedule#set_up_the_functions_with
如果您不希望使用Kubernetes,我认为对您来说最简单的解决方案是创建一个Compute Engine实例来运行您的cron调度,它只需根据需要在您的映像上调用适当的docker run命令。
https://stackoverflow.com/questions/55202730
复制相似问题