• Русский
  • 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>