【K8s】专题四(6):Kubernetes 控制器之 Job

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!

公众号二维码


目录

一、基本介绍

二、工作原理

三、相关特性

四、资源清单(示例)

五、常用操作


一、基本介绍

Job 控制器是 Kubernetes 中用于运行一次性任务的 API 对象,它负责启动指定数量的 Pod,通过跟踪记录达到 Completed 状态的 Pod 个数,并判断是否达到设定的阈值来确保这些 Pod 成功完既定任务。

Job 通常用于部署一次性任务或批处理任务。


二、工作原理
  • 定义对象:用户定义一个 Job 对象,指定 Pod 模板和其他配置选项
  • 调度 Pod:Kubernetes 根据 Job 的定义创建 PodPod 被调度到节点后开始执行任务
  • 监控 Pod:Job 控制器会监控这些 Pod 的状态,确保它们成功完成任务
  • 完成任务:当所有 Pod 都成功完成任务后,Job 状态会被标记为 Completed
  • 清理资源:完成的 Job 及对应的 Pod 会在一定时间后被系统自动清理


三、相关特性
  • 并行执行:Job 可以指定并行运行的 Pod 数量,允许任务并行执行以提高效率
  • 成功计数:Job 控制器会跟踪成功完成任务的 Pod 数量,直到达到用户指定的完成数量
  • 失败重试:Job 可以配置重试策略,当 Pod 失败时可以重新启动新的 Pod 来尝试完成任务
  • 自动清理:Job 完成后,相关的资源(如 Pod)会被自动清理,减少资源浪费
  • 依赖管理:Job 可以设置依赖,确保任务按照特定的顺序执行
  • 生命周期:Job 提供了一种机制来管理任务的生命周期,包括任务的启动、监控、完成和清理
  • 弹性伸缩:可以根据任务的需求动态调整并行执行的 Pod 数量
  • 监控和日志:可以对 Job 的执行情况进行监控,并收集相关的日志信息,方便问题排查和性能分析


四、资源清单(示例)
# job.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: demo-job
spec:
  backoffLimit: 3
  completions: 1
  parallelism: 1
  ttlSecondsAfterFinished: 20
  template:
    metadata:
      labels:
        app: demo-job
    spec:
      restartPolicy: Never
      containers:
      - name: demo-container
        image: busybox
        command:
        - sh
        - -c
        - for i in 1 2 3 4 5 6;do echo $i;done

🔔 默认情况下,Job 任务运行失败或异常结束时,Pod 状态会变为Error,同时创建新的 Pod 继续运行任务
🔔 backoffLimit:指定任务运行失败时,尝试重新运行任务的次数,默认为 6 次,0 表示不尝试重新运行
🔔 completions: 指定任务需要完成的次数
🔔 parallelism: 指定并行运行的任务个数
🔔 ttlSecondsAfterFinished:任务完成后,自动清理 Pod 的时间(单位s)

上述 job.yaml 文件定义了一个名为 demo-job 的 Job 对象,每个 Pod 包含一个名为 demo-container 的容器,该容器使用 busybox 镜像,启动后执行一次性任务(打印数字 1 ~ 6)。

说明:可以通过以下命令查看 Job 资源清单支持定义的内容

kubectl explain job --recursive


五、常用操作

1、创建 Job

kubectl create -f job.yaml
或
kubectl apply -f job.yaml


2、查看 Job

# 查看实例列表
kubetcl get job
 
# 查看详细信息
kubectl describe job demo-job


3、删除 Job

# 方式一:命令行
kubectl delete job demo-job
 
# 方式二:资源清单
kubectl delete -f job.yaml

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行者Sun1989

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值