【问题标题】:How to run jobs sequentially by using Kubernetes and Docker如何使用 Kubernetes 和 Docker 顺序运行作业
【发布时间】:2019-09-28 12:36:38
【问题描述】:

我想使用 Kubernetes 安排三个顺序任务。这三个任务是:

1- 从 URL 下载文件

2- 处理文件

3- 将文件放入网络服务器(必须先配置服务器并在其上安装一些模块)

我想我可以使用Kubernetes jobs 来做到这一点,但我没有找到执行此类任务的示例。

另外,我不知道如何在使用之前先配置网络服务器。是否可以从服务器创建 Docker 映像、对其进行配置并最终从中获取快照?

编辑: 作为第一步,我只想创建一个下载文件的作业。我找不到任何样本;我该怎么做?

【问题讨论】:

  • @VasilyAngapov:我看到了这个话题,但我的目标是两个部分:我不知道是否可以在 Kubernetes yaml 文件中使用已配置的 docker 镜像;而且我不知道我的场景的最佳实践是什么,例如使用 pods、jobs、docker images 必须如何使用。
  • Kubernetes 没有用于顺序作业的内置逻辑。我用 initContainers 给出的链接中投票最多的答案是我相信最好的方法。这有点hacky和肮脏,但它会起作用。
  • 像 RabbitMQ 这样的作业队列也很适合这个空间。 (在带有 PersistentVolumeClaim 的 StatefulSet 中运行 RabbitMQ,并通过可扩展的 Deployment 运行 worker,并且根本不使用 Jobs。)

标签: docker kubernetes jobs


【解决方案1】:

在我看来,当今最有效和最棒​​的解决方案仍然是使用initContainers

InitContainers 是在当前情况下处理您的任务的最佳工具。 使用example provided here 并将所有任务实现为 initContainers。

关于配置 web-server 和进一步的容器使用: 有很多文章提供了有关如何创建自己的 Docker 映像的分步说明。 我可以推荐你以Steps To Build Apache Web Server Docker Image文章为例。

【讨论】:

    猜你喜欢
    • 2017-04-04
    • 1970-01-01
    • 2019-06-19
    • 2019-03-27
    • 1970-01-01
    • 2021-05-23
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多