前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【赵渝强老师】Job控制器多工作队列的并行方式

【赵渝强老师】Job控制器多工作队列的并行方式

原创
作者头像
赵渝强老师
发布2024-09-29 09:35:37
740
发布2024-09-29 09:35:37
举报
文章被收录于专栏:容器技术

  Kubernetes Job是一次性任务的控制器。它控制Pod中的容器执行完成任务后不会再重启,并将容器的状态设置为“Completed”。如果Pod中的容器出现了异常终止的情况,Job控制器会根据设置的重启策略进行Pod的重启。如果因为Node节点的故障导致Pod无法正常运行,Job控制器会通过调度器将Pod调度到其他的节点上运行。Job控制器的运行方式分为:单工作队列的串行方式和多工作队列的并行方式。

  视频讲解如下:

视频内容

  下面通过一个具体示例来演示如何使用Job控制器的多工作队列的并行方式。在创建多工作队列的Job并行方式时,需要指定两个重要的参数。它们分别是:

  • .spec.parallelism:作业并行并行执行的数量,即:队列的数量
  • .spec.completions:作业需要完成数量,即:作业总数量

  下面的例子中,需要完成的作业总数量是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个作业都成功执行完成。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档