admin管理员组文章数量:1794759
【赵渝强老师】Job控制器多工作队列的并行方式
Kubernetes Job是一次性任务的控制器。它控制Pod中的容器执行完成任务后不会再重启,并将容器的状态设置为“Completed”。如果Pod中的容器出现了异常终止的情况,Job控制器会根据设置的重启策略进行Pod的重启。如果因为Node节点的故障导致Pod无法正常运行,Job控制器会通过调度器将Pod调度到其他的节点上运行。Job控制器的运行方式分为:单工作队列的串行方式和多工作队列的并行方式。
视频讲解如下:
下面通过一个具体示例来演示如何使用Job控制器的多工作队列的并行方式。在创建多工作队列的Job并行方式时,需要指定两个重要的参数。它们分别是:
- .spec.parallelism:作业并行并行执行的数量,即:队列的数量
- .specpletions:作业需要完成数量,即:作业总数量
下面的例子中,需要完成的作业总数量是5个,并且创建了3个队列,即:作业的并行度是3。整个作业执行完成需要2分钟。
(1)创建“job-demo2.yaml”文件,并输入下面的内容:
代码语言:yaml复制apiVersion: batch/v1
kind: Job
metadata:
name: job-demo2
spec:
completions: 5
parallelism: 3
template:
spec:
containers:
- name: job-demo2
image: nginx
imagePullPolicy: IfNotPresent
# 模拟作业需要执行60秒钟
command: ["/bin/bash","-c","sleep 60"]
#重启策略,不进行重启
restartPolicy: Never
(2)执行命令创建Job。
代码语言:powershell复制kubectl apply -f job-demo2.yaml
(3)查看Job信息和Pod信息,如下图所示。
代码语言:powershell复制kubectl get job,pod
# 提示:由于作业总数量是5个,但只要3个队列并行执行。
# 因此这里就只看到了Job控制器启动了3个Pod。
(4)等待60秒后,再次查看Job信息和Pod信息,如下图所示。
代码语言:powershell复制kubectl get job,pod
# 提示:经过60秒种后,第一批执行的3个作用已经完成。
# Job控制器又使用了2个队列来执行剩下的两个作业。
(5)再等待60秒后,再次查看Job信息和Pod信息,如下图所示。
代码语言:powershell复制kubectl get job,pod
# 提示:经过120秒钟后,5个作业都成功执行完成。
本文标签: 赵渝强老师Job控制器多工作队列的并行方式
版权声明:本文标题:【赵渝强老师】Job控制器多工作队列的并行方式 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1755062109a1710017.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论