【发布时间】:2020-09-13 16:27:50
【问题描述】:
我有一个 Kubernetes pod,它可以下载多种类型的文件(比如 X、Y 和 Z),并且我有一些处理脚本(每个都在一个 docker 映像中),它们对其中一个感兴趣或更多文件(比如说processor_X_and_Y、processor_X_and_Z 和processor_Z)。
第一个pod一直在运行,我需要根据文件类型下载文件后创建一个处理器pod,例如如果下载器下载了Z类型的文件,我需要创建一个新的实例processor_X_and_Z 和 processor_Z 的新实例。
我目前的想法是使用Argo workflow,通过为每个处理器创建一个简单的工作流程,然后通过从下载器窗格调用Argo REST API 来启动合适的工作流程。因此,我已经实现了我的目标和我的系统的自动缩放。
我的问题是 Kubernetes 中是否有另一个更简单的引擎或服务,我可以使用它从另一个 pod 创建一个新产品,而无需使用这个工作流引擎?
【问题讨论】:
-
为什么不使用 Kubernetes API 来创建 Pod?似乎您正在使用 CI/CD 工具来管理您的管理工作负载。不确定这是否适合这项工作。
-
@nodox Argo 确实有 CI/CD 工具,但也有一些其他可能相关的功能。
-
将单个作业放入像 RabbitMQ 这样的队列系统中,并让工作人员使用队列中的作业,这可能是一种更具可扩展性的方法。您无需处理 Kubernetes 细节或 RBAC 即可在开发环境中测试此方法,并且当您突然同时获得 10,000 个作业时,您不会冒着淹没集群的风险。
标签: kubernetes kubernetes-pod argo-workflows