【发布时间】:2021-01-04 02:12:56
【问题描述】:
我正在尝试在 kubernetes 中编写一个数据处理单元。
因为每个流程单元都有一个非常相似的工作流程:
- Puller 从对象存储中拉取数据并将
/input卷挂载到容器中 - 处理器运行代码处理volume中的数据并将数据输出到
/outputvolume - 再次将
/output卷中的数据推送到对象存储中
因此,每个 pod 或作业都必须有一个容器作为数据推送器和数据拉取器,共享卷在 here 中提到了这一点。但是我怎样才能使这个过程成为拉 -> 过程 -> 推序列?
现在我可以使用volume share的方式进行通信使其工作:首先我可以让puller开始工作,让数据处理器等待它找到一个pull-finished.txt创建。然后让推送器在找到创建的 process-finished.txt 时开始工作。但这可能不得不从某些图像中强制数据处理容器或使用某些不是我想要的特定入口点。有没有更优雅的方式来完成这项工作?
【问题讨论】:
-
嗨,Afaik,您可以使用 init 容器来完成这些任务。此外,它可以在 pod 中同步。这是它的链接init-containers
-
不完全相同的问题,但它有你需要的信息:stackoverflow.com/questions/49568337/…
标签: kubernetes pipeline