有时,我们希望能同时运行多个 Pod,提高 Job 的执行效率。这个可以通过 parallelism 设置。

并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)_第1张图片

这里我们将并行的 Pod 数量设置为 2,实践一下:

并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)_第2张图片

Job 一共启动了两个 Pod,而且 AGE 相同,可见是并行运行的。

我们还可以通过 completions 设置 Job 成功完成 Pod 的总数:

并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)_第3张图片

上面配置的含义是:每次运行两个 Pod,直到总共有 6 个 Pod 成功完成。实践一下:

并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)_第4张图片

DESIRED 和 SUCCESSFUL 均为 6,符合预期。如果不指定 completions 和 parallelism,默认值均为 1

上面的例子只是为了演示 Job 的并行特性,实际用途不大。不过现实中确实存在很多需要并行处理的场景。比如批处理程序,每个副本(Pod)都会从任务池中读取任务并执行,副本越多,执行时间就越短,效率就越高。这种类似的场景都可以用 Job 来实现。

下一节我们讨论如何定时执行 Job。

书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html

2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

并行执行 Job - 每天5分钟玩转 Docker 容器技术(134)_第5张图片