任务

目录

理解任务

请参考官方 Kubernetes 文档:Jobs

任务提供了不同的方式来定义运行至完成并随后停止的任务。您可以使用任务来定义一次性完成的任务。

  • 原子执行单元:每个任务管理一个或多个 Pods,直到成功完成。
  • 重试机制:由 spec.backoffLimit 控制(默认值:6)。
  • 完成跟踪:使用 spec.completions 定义所需的成功次数。

YAML 文件示例

# example-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: data-processing-job
spec:
  completions: 1          # 所需成功完成的数量
  parallelism: 1          # 最大并行 Pods 数量
  backoffLimit: 3         # 最大重试次数
  template:
    spec:
      restartPolicy: Never # 任务特定的策略(Never/OnFailure)
      containers:
      - name: processor
        image: alpine:3.14
        command: ["/bin/sh", "-c"]
        args:
          - echo "Processing data..."; sleep 30; echo "Job completed"

执行概述

Kubernetes 中的每个任务执行都会创建一个专用的任务对象,使用户能够:

  • 通过以下命令创建任务
kubectl apply -f example-job.yaml
  • 通过以下命令跟踪任务生命周期
kubectl get jobs
  • 通过以下命令检查执行细节
kubectl describe job/<job-name>
  • 通过以下命令查看 Pod 日志
kubectl logs <pod-name>