Spec-Zone.ru › Kubernetes 1.25

Задача

Задача представляет конфигурацию одной задачи.

apiVersion: batch/v1

import "k8s.io/api/batch/v1"

Задача

Задача представляет конфигурацию одной задачи.

  • apiVersion: batch/v1

  • kind: Задача

  • metadata (ObjectMeta)

    Стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • spec (JobSpec)

    Спецификация желаемого поведения задачи. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

  • status (JobStatus)

    Текущее состояние задачи. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

JobSpec

JobSpec описывает, как будет выглядеть выполнение задачи.

Replicas

  • template (PodTemplateSpec), обязательный

    Описывает Pod, который будет создан при выполнении задачи. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

  • parallelism (int32)

    Указывает максимальное желаемое количество Pods, которые задача должна запускать в любой момент времени. Фактическое количество работающих Pods в устойчивом состоянии будет меньше этого числа, когда ((.spec.completions - .status.successful) < .spec.parallelism), т.е. когда оставшаяся работа меньше максимального параллелизма. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

Lifecycle

  • completions (int32)

    Указывает желаемое количество успешно завершенных Pods, с которыми должна выполняться задача. Установка в значение null означает, что успех любого Pod сигнализирует об успехе всех Pods и позволяет параллелизму иметь любое положительное значение. Установка в 1 означает, что параллелизм ограничен 1, и успех этого Pod сигнализирует об успехе задачи. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

  • completionMode (string)

    CompletionMode определяет, как отслеживаются завершения Pod. Может быть NonIndexed (по умолчанию) или Indexed.

    NonIndexed означает, что задача считается завершенной, когда было выполнено .spec.completions успешно завершенных Pods. Каждое завершение Pod гомологично друг другу.

    Indexed означает, что Pods задачи получают связанный индекс завершения от 0 до (.spec.completions - 1), доступный в аннотации batch.kubernetes.io/job-completion-index. Задача считается завершенной, когда для каждого индекса имеется один успешно завершенный Pod. Когда значение равно Indexed, .spec.completions должно быть указано и .spec.parallelism должно быть меньше или равно 10^5. Кроме того, имя Pod имеет вид $(job-name)-$(index)-$(random-string), имя хоста Pod имеет вид $(job-name)-$(index).

    В будущем могут быть добавлены дополнительные режимы завершения. Если контроллер Job обнаруживает режим, который он не распознает, что возможно во время обновлений из-за различий в версиях, контроллер пропускает обновления для задачи.

  • backoffLimit (int32)

    Указывает количество попыток повтора, прежде чем отмечать эту задачу как проваленную. По умолчанию 6

  • activeDeadlineSeconds (int64)

    Указывает продолжительность в секундах относительно времени начала, в течение которой задача может непрерывно действовать, прежде чем система попытается ее завершить; значение должно быть положительным целым числом. Если задача приостановлена (при создании или посредством обновления), этот таймер фактически будет остановлен и сброшен, когда задача снова будет возобновлена.

  • ttlSecondsAfterFinished (int32)

    ttlSecondsAfterFinished ограничивает срок службы задачи, которая завершила выполнение (либо завершена, либо завершена с ошибкой). Если это поле установлено, ttlSecondsAfterFinished после завершения задачи она может быть автоматически удалена. При удалении задачи будут соблюдены ее гарантии жизненного цикла (например, финализаторы). Если это поле не задано, задача автоматически не удалится. Если это поле установлено в ноль, задача становится пригодной для удаления сразу после завершения.

  • suspend (boolean)

    Suspend указывает, должен ли контроллер задач создавать Pods или нет. Если задача создается с suspend, установленным в true, контроллер задач не создает Pods. Если задача приостановлена после создания (т. е. флаг меняется с false на true), контроллер задач удалит все активные Pods, связанные с этой задачей. Пользователи должны разработать свою рабочую нагрузку, чтобы должным образом обработать это. Приостановление задачи сбросит поле StartTime задачи, фактически сбросив таймер ActiveDeadlineSeconds.

Selector

  • selector (LabelSelector)

    Запрос меток над Pods, которые должны соответствовать количеству Pod. Обычно система устанавливает это поле за вас. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

  • manualSelector (boolean)

    manualSelector управляет генерацией меток Pod и селекторов Pod. Оставьте manualSelector не установленным, если вы не уверены, что делаете. Если false или не установлено, система выбирает метки, уникальные для этой задачи, и добавляет эти метки к шаблону Pod. Если true, пользователь отвечает за выбор уникальных меток и указание селектора. Неудача в выборе уникальной метки может привести к тому, что эта и другие задачи не будут работать правильно. Тем не менее, вы можете увидеть manualSelector=true в задачах, которые были созданы с помощью старого extensions/v1beta1 API. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector

Уровень Alpha

  • podFailurePolicy (PodFailurePolicy)

    Определяет политику обработки завершившихся неудачно Pods. В частности, она позволяет указать набор действий и условий, которые должны быть выполнены для выполнения соответствующего действия. Если поле пустое, применяется поведение по умолчанию — счётчик завершившихся неудачно Pods, представленный полем .status.failed работы, увеличивается, и его значение проверяется на соответствие backoffLimit. Это поле нельзя использовать совместно с restartPolicy=OnFailure.

    Это поле находится на стадии alpha. Для использования этого поля необходимо включить JobPodFailurePolicy (отключено по умолчанию).

    PodFailurePolicy описывает, как завершившиеся неудачно Pods влияют на backoffLimit.

    • podFailurePolicy.rules ([]PodFailurePolicyRule), необходимо

      Атомарное: будет заменено при слиянии

      Список правил политики обработки завершившихся неудачно Pods. Правила оцениваются в порядке их следования. Как только правило сопоставится с завершившимся неудачно Pod, остальные правила игнорируются. Если ни одно правило не сопоставится с завершившимся неудачно Pod, применяется обработка по умолчанию — счётчик завершений с ошибкой увеличивается и проверяется на соответствие backoffLimit. Максимальное количество элементов — 20.

      PodFailurePolicyRule описывает, как обрабатывается завершение с ошибкой Pod, когда выполняются необходимые условия. В каждом правиле можно использовать либо OnExitCodes, либо onPodConditions, но не оба сразу.

      • podFailurePolicy.rules.action (string), необходимо

        Определяет действие, выполняемое при завершении Pod с ошибкой, когда требования выполнены. Возможные значения: - FailJob: означает, что работа Pod отмечается как завершенная с ошибкой, и все работающие Pods завершаются.

        • Ignore: означает, что счётчик для .backoffLimit не увеличивается, и создаётся заменяющий Pod.
        • Count: означает, что Pod обрабатывается стандартным способом — счётчик для .backoffLimit увеличивается. Дополнительные значения могут быть добавлены в будущем. Клиенты должны игнорировать неизвестное действие.
      • podFailurePolicy.rules.onPodConditions ([]PodFailurePolicyOnPodConditionsPattern), необходимо

        Атомарное: будет заменено при слиянии

        Представляет требование к условиям Pod. Требование представлено списком шаблонов условий Pod. Требование выполняется, если хотя бы один шаблон соответствует фактическому условию Pod. Максимальное количество элементов — 20.

        PodFailurePolicyOnPodConditionsPattern описывает шаблон для сопоставления фактического типа условия Pod.

        • podFailurePolicy.rules.onPodConditions.status (string), необходимо

          Определяет требуемый статус условия Pod. Для сопоставления с условием Pod требуется, чтобы указанный статус был равен статусу условия Pod. По умолчанию True.

        • podFailurePolicy.rules.onPodConditions.type (string), необходимо

          Определяет требуемый тип условия Pod. Для сопоставления с условием Pod требуется, чтобы указанный тип был равен типу условия Pod.

      • podFailurePolicy.rules.onExitCodes (PodFailurePolicyOnExitCodesRequirement)

        Представляет требование к кодам завершения контейнера.

        PodFailurePolicyOnExitCodesRequirement описывает требование для обработки завершившегося с ошибкой Pod на основе кодов завершения его контейнеров. В частности, он ищет .state.terminated.exitCode для каждого контейнера приложения и контейнера инициализации, представленного полями .status.containerStatuses и .status.initContainerStatuses в состоянии Pod соответственно. Контейнеры, завершившиеся успешно (код возврата 0), исключаются из проверки требования.

        • podFailurePolicy.rules.onExitCodes.operator (string), необходимо

          Представляет отношение между кодом возврата контейнера(ов) и указанными значениями. Контейнеры, завершившиеся успешно (код возврата 0), исключаются из проверки требования. Возможные значения: - In: требование выполняется, если хотя бы один код возврата контейнера (может быть несколько, если есть несколько контейнеров, не ограниченных полей 'containerName') входит в набор указанных значений.

          • NotIn: требование выполняется, если хотя бы один код возврата контейнера (может быть несколько, если есть несколько контейнеров, не ограниченных полей 'containerName') не входит в набор указанных значений. Дополнительные значения могут быть добавлены в будущем. Клиенты должны реагировать на неизвестный оператор, предполагая, что требование не выполнено.
        • podFailurePolicy.rules.onExitCodes.values ([]int32), необходимо

          Множество: уникальные значения будут сохраняться при слиянии

          Определяет множество значений. Каждый возвращаемый код возврата контейнера (может быть несколько в случае нескольких контейнеров) проверяется относительно этого множества значений с учётом оператора. Список значений должен быть упорядоченным и не содержать дубликатов. Значение '0' нельзя использовать для оператора In. Требуется хотя бы один элемент. Максимальное количество элементов — 255.

        • podFailurePolicy.rules.onExitCodes.containerName (string)

          Ограничивает проверку кодов возврата контейнером с указанным именем. Если null, правило применяется ко всем контейнерам. Если указано, оно должно соответствовать одному из имён контейнера или контейнера инициализации в шаблоне Pod.

JobStatus

JobStatus представляет текущее состояние работы.

  • startTime (Time)

    Представляет время, когда контроллер работы начал обработку работы. Когда работа создаётся в приостановленном состоянии, это поле не устанавливается до первого возобновления. Это поле сбрасывается каждый раз, когда работа возобновляется из приостановленного состояния. Представлено в формате RFC3339 и по UTC.

    Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета времени.

  • completionTime (Time)

    Представляет время завершения работы. Не гарантируется, что он устанавливается в порядке "раньше-позже" в отдельных операциях. Представлено в формате RFC3339 и по UTC. Время завершения устанавливается только при успешном завершении работы.

    Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета времени.

  • active (int32)

    Количество ожидающих и выполняющихся Pods.

  • failed (int32)

    Количество Pods, достигших фазы Failed.

  • succeeded (int32)

    Количество Pods, достигших фазы Succeeded.

  • completedIndexes (string)

    CompletedIndexes содержит завершённые индексы, когда .spec.completionMode = "Indexed" в текстовом формате. Индексы представлены десятичными целыми числами, разделенными запятыми. Числа перечислены в порядке возрастания. Три или более последовательных числа сжаты и представлены первым и последним элементом серии, разделенными дефисом. Например, если завершённые индексы — 1, 3, 4, 5 и 7, они представляются как "1,3-5,7".

  • conditions ([]JobCondition)

    Стратегия исправления: слияние по ключу type

    Атомарное: будет заменено при слиянии

    Последние доступные наблюдения за текущим состоянием объекта. Когда работа завершается с ошибкой, одно из условий будет иметь тип "Failed" и статус True. Когда работа приостановлена, одно из условий будет иметь тип "Suspended" и статус True; когда работа возобновлена, статус этого условия станет False. Когда работа завершена, одно из условий будет иметь тип "Complete" и статус True. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

    JobCondition описывает текущее состояние работы.

    • conditions.status (string), необходимо

      Статус условия, один из True, False, Unknown.

    • conditions.type (string), необходимо

      Тип условия работы, Complete или Failed.

    • conditions.lastProbeTime (Time)

      Последнее время проверки условия.

      Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета времени.

    • conditions.lastTransitionTime (Time)

      Последнее время перехода условия из одного статуса в другой.

      Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета времени.

    • conditions.message (string)

      Человекопонятное сообщение, указывающее подробности о последнем переходе.

    • conditions.reason (string)

      (краткое) объяснение перехода последнего состояния условия.

  • uncountedTerminatedPods (UncountedTerminatedPods)

    UncountedTerminatedPods содержит идентификаторы Pods, которые завершились, но контроллер работы ещё не учёл их в счётчиках состояния.

    Контроллер работы создаёт Pods с финализатором. Когда Pod завершается (успешно или неудачно), контроллер выполняет три шага для учёта его в статусе работы: (1) Добавляет UID Pod в массивы в этом поле. (2) Удаляет финализатор Pod. (3) Удаляет UID Pod из массивов, увеличивая соответствующий счётчик.

    Это поле находится на стадии beta. Контроллер работы использует это поле только при включении флагов JobTrackingWithFinalizers (включено по умолчанию). Старые работы могут не отслеживаться с помощью этого поля, в этом случае поле остаётся null.

    UncountedTerminatedPods содержит UIDs Pods, которые завершились, но не были учтены в счётчиках состояния Job.

    • uncountedTerminatedPods.failed ([]string)

      Множество: уникальные значения будут сохраняться при слиянии

      Failed содержит UIDs завершившихся с ошибкой Pods.

    • uncountedTerminatedPods.succeeded ([]string)

      Множество: уникальные значения будут сохраняться при слиянии

      Succeeded содержит UIDs завершившихся успешно Pods.

Уровень beta

  • ready (int32)

    Количество Pods, у которых есть состояние Ready.

    Это поле находится на стадии beta. Контроллер работы заполняет поле, когда включён флаг JobReadyPods (включён по умолчанию).

Список работ

JobList — коллекция работ.

  • apiVersion: batch/v1

  • kind: JobList

  • metadata (ListMeta)

    Стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • items ([]Job), необходимо

    items — список работ.

© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-25.docs.kubernetes.io/docs/reference/kubernetes-api/workload-resources/job-v1/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API