Задача
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), required
Описывает 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).В будущем могут быть добавлены другие режимы завершения. Если контроллер задач наблюдает режим, который он не распознает, что возможно во время обновлений из-за различий в версиях, контроллер пропускает обновления для задачи.
-
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, которые должны соответствовать количеству pods. Обычно система устанавливает это поле за вас. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
-
manualSelector (boolean)
manualSelector управляет генерацией меток pods и селекторов pods. Оставьте
manualSelectorпустым, если вы не уверены, что делаете. Если значение false или не задано, система выбирает уникальные метки для этой задачи и добавляет эти метки к шаблону pod. Если значение true, пользователь отвечает за выбор уникальных меток и указание селектора. Невозможность выбрать уникальную метку может привести к тому, что эта и другие задачи не будут работать правильно. Однако, вы можете увидетьmanualSelector=trueв задачах, которые были созданы с помощью старогоextensions/v1beta1API. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector
JobStatus
JobStatus представляет собой текущее состояние задачи.
-
startTime (Время)
Представляет время, когда контроллер задач начал обработку задачи. Когда задача создается в приостановленном состоянии, это поле не устанавливается до первого возобновления. Это поле сбрасывается каждый раз, когда задача возобновляется после приостановки. Представлено в формате RFC3339 и в формате UTC.
Время — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет time.
-
completionTime (Время)
Представляет время, когда задача была завершена. Не гарантируется, что оно будет установлено в порядке «происходит до» для отдельных операций. Представлено в формате RFC3339 и в формате UTC. Время завершения устанавливается только при успешном завершении задачи.
Время — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет time.
-
active (int32)
Количество ожидающих и выполняющихся под-подобъектов.
-
failed (int32)
Количество под-подобъектов, достигших состояния «Ошибка».
-
succeeded (int32)
Количество под-подобъектов, достигших состояния «Успешно».
-
completedIndexes (строка)
CompletedIndexes содержит завершенные индексы, когда .spec.completionMode = "Indexed" в текстовом формате. Индексы представлены как десятичные целые числа, разделенные запятыми. Числа перечислены в порядке возрастания. Три и более последовательных числа сжимаются и представляются первой и последней элементами серии, разделенными дефисом. Например, если завершенные индексы — 1, 3, 4, 5 и 7, они представляются как "1,3-5,7".
-
conditions ([]JobCondition)
Стратегия патчинга: слияние по ключу
typeАтомарно: будет заменено во время слияния
Последние доступные наблюдения за текущим состоянием объекта. Когда задача завершается неудачно, одно из условий будет иметь тип «Ошибка» и значение true. Когда задача приостановлена, одно из условий будет иметь тип «Приостановлено» и значение true; при возобновлении задачи состояние этого условия станет false. Когда задача завершена, одно из условий будет иметь тип «Завершено» и значение true. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
JobCondition описывает текущее состояние задачи.
-
conditions.status (строка), обязательно
Состояние условия, одно из True, False, Unknown.
-
conditions.type (строка), обязательно
Тип условия задачи, Завершено или Ошибка.
-
conditions.lastProbeTime (Время)
Последнее время проверки условия.
Время — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет time.
-
conditions.lastTransitionTime (Время)
Последнее время перехода условия из одного состояния в другое.
Время — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет time.
-
conditions.message (строка)
Человекопонятное сообщение, содержащее подробности о последнем переходе.
-
conditions.reason (строка)
(кратко) причина последнего перехода состояния условия.
-
-
uncountedTerminatedPods (UncountedTerminatedPods)
UncountedTerminatedPods содержит идентификаторы под-подобъектов, которые завершились, но контроллер задач еще не учел их в счетчиках состояния.
Контроллер задач создает под-подобъекты с финализатором. Когда под-подобъект завершается (успешно или неудачно), контроллер выполняет три шага для учета этого в состоянии задачи: (1) Добавление UID под-подобъекта в массивы в этом поле. (2) Удаление финализатора под-подобъекта. (3) Удаление UID под-подобъекта из массивов с одновременным увеличением соответствующего счетчика.
Это поле находится на уровне бета-версии. Контроллер задач использует это поле только при включенной функции JobTrackingWithFinalizers (включено по умолчанию). Старые задачи могут не отслеживаться с помощью этого поля, в этом случае поле остается null.
UncountedTerminatedPods содержит идентификаторы под-подобъектов, которые завершились, но не были учтены в счетчиках состояния задачи.
-
uncountedTerminatedPods.failed ([]string)
Установить: уникальные значения будут сохранены во время слияния
Failed содержит UID завершившихся с ошибкой под-подобъектов.
-
uncountedTerminatedPods.succeeded ([]string)
Установить: уникальные значения будут сохранены во время слияния
Succeeded содержит UID завершившихся успешно под-подобъектов.
-
Уровень Alpha
-
ready (int32)
Количество под-подобъектов, которые имеют состояние «Готов».
Это поле находится на уровне бета-версии. Контроллер задач заполняет поле при включении функции JobReadyPods (включено по умолчанию).
Список задач
Список задач — это коллекция задач.
-
apiVersion: batch/v1
-
kind: Список задач
-
metadata (ListMeta)
Стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
-
items ([]Задача), обязательно
items — это список задач.
© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-24.docs.kubernetes.io/docs/reference/kubernetes-api/workload-resources/job-v1/