并行执行 Job - 每天5分钟玩转 Docker 容器技术(1
2018-02-26 本文已影响33人
暖夏未眠丶
摘要: 有时我们希望通过同时运行多个 Pod 来提高 Job 的执行效率。可以用 parallelism 来实现。
有时,我们希望能同时运行多个 Pod,提高 Job 的执行效率。这个可以通过 parallelism 设置。

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

Job 一共启动了两个 Pod,而且 AGE 相同,可见是并行运行的。
我们还可以通过 completions 设置 Job 成功完成 Pod 的总数:

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

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

版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。