Jobs

Содержание

Понимание Jobs

Обратитесь к официальной документации Kubernetes: Jobs

Job предоставляет различные способы определения задач, которые выполняются до завершения и затем останавливаются. Вы можете использовать Job для определения задачи, которая выполняется до завершения один раз.

  • Атомарная единица выполнения: Каждый Job управляет одним или несколькими Pod до успешного завершения.
  • Механизм повторных попыток: Управляется параметром spec.backoffLimit (по умолчанию: 6).
  • Отслеживание завершения: Используйте spec.completions для определения необходимого количества успешных выполнений.

Пример YAML файла

# example-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: data-processing-job
spec:
  completions: 1 # Количество необходимых успешных завершений
  parallelism: 1 # Максимальное количество параллельных Pod
  backoffLimit: 3 # Максимальное количество попыток повторного запуска
  template:
    spec:
      restartPolicy: Never # Политика перезапуска для Job (Never/OnFailure)
      containers:
        - name: processor
          image: alpine:3.14
          command: ['/bin/sh', '-c']
          args:
            - echo "Processing data..."; sleep 30; echo "Job completed"

Обзор выполнения

Каждое выполнение Job в Kubernetes создает отдельный объект Job, что позволяет пользователям:

  • Создать задание с помощью

    kubectl apply -f example-job.yaml
  • Отслеживать жизненный цикл задания с помощью

    kubectl get jobs
  • Просматривать детали выполнения с помощью

    kubectl describe job/<job-name>
  • Просматривать логи Pod с помощью

    kubectl logs <pod-name>