Задания полезны для больших вычислительных и пакетных задач. Задания могут использоваться для поддержки параллельного выполнения модулей. Вы можете использовать задание для параллельного запуска независимых, но связанных рабочих элементов: отправка электронной почты, рендеринг кадров, перекодирование файлов, сканирование ключей базы данных и т. Д. c. Однако задания не предназначены для тесно связанных параллельных процессов, таких как непрерывные потоки фоновых процессов.
Непараллельное задание: Задание, в котором создается только один модуль (который создается заново). если модуль завершается неудачно) и выполняется после успешного завершения модуля.
Параллельные задания с количеством завершений: Задание, которое завершается при успешном завершении определенного количества модулей. Вы указываете желаемое количество завершений, используя поле завершений.
Задания представлены Kubernetes Объекты заданий . Когда задание создано, контроллер заданий создает один или несколько модулей и обеспечивает успешное завершение его модулей. По мере того как его блоки завершаются, задание отслеживает, сколько модулей успешно выполнило свои задачи. Как только желаемое количество успешных завершений будет достигнуто, задание будет завершено.
Как и другие контроллеры, контроллер задания в kubernetes создает новый модуль, если один из его модулей выходит из строя или удаляется.
Если задание не завершено, потому что узел, на котором был запущен его модуль, по какой-то причине отключился, то будет создан новый модуль для работы на другом узле. Если один модуль не завершен из-за того, что его узел стал недоступен, он не будет перенесен на другой узел.
Как только модуль настроен на компьютер, он будет назначен этому компьютеру до его завершения или пока он не будет удален. Если узел исчезает, начинается тайм-аут, и в конце тайм-аута все модули, назначенные этому узлу, удаляются. Поэтому, если узел возвращается до истечения времени ожидания, он найдет модуль, который все еще назначен, и перезапустит его. Если узел возвращается после истечения времени ожидания, он вообще не найдет модуль