В чем разница между ресурсами Pod и Job в k8s? - PullRequest
0 голосов
/ 12 января 2020

Являются ли ресурсы Pod и Job одинаковыми?

apiVersion: v1
kind: Pod
metadata:
  name: ""
  labels:

или

apiVersion: v1
kind: Job
metadata:
  name: ""
  labels:

Я думаю, что Job все равно создаст модуль. Просто интересно, когда я использую одно вместо другого.

Ответы [ 3 ]

2 голосов
/ 12 января 2020

Подразделение - c единица для express работоспособного процесса в Кубернетесе.

Задание - это абстракция более высокого уровня, которая использует модули для выполнения выполнимой задачи .

Возможно, вы думаете об использовании модуля с restartPolicy: Never для запуска выполнимой задачи . Но в случае сбоя узла модуль на этом узле, управляемом заданием, переназначается на другой узел, а неуправляемый модуль - нет.

В задании также есть дополнительные функции, такие как completions и parallelism, с помощью которых вы можете запустить несколько экземпляров.

1 голос
/ 12 января 2020

Используйте Задания, если ваши задачи будут выполнены (например, вычисляется от π до 2000 мест и распечатывается).

Под капотом Иов использует для расчетов стручки. Вообразите, что Работа - более высокий уровень абстракции, чем Стручки.

https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

0 голосов
/ 12 января 2020

Задания полезны для больших вычислительных и пакетных задач. Задания могут использоваться для поддержки параллельного выполнения модулей. Вы можете использовать задание для параллельного запуска независимых, но связанных рабочих элементов: отправка электронной почты, рендеринг кадров, перекодирование файлов, сканирование ключей базы данных и т. Д. c. Однако задания не предназначены для тесно связанных параллельных процессов, таких как непрерывные потоки фоновых процессов.

Непараллельное задание: Задание, в котором создается только один модуль (который создается заново). если модуль завершается неудачно) и выполняется после успешного завершения модуля.

Параллельные задания с количеством завершений: Задание, которое завершается при успешном завершении определенного количества модулей. Вы указываете желаемое количество завершений, используя поле завершений.

Задания представлены Kubernetes Объекты заданий . Когда задание создано, контроллер заданий создает один или несколько модулей и обеспечивает успешное завершение его модулей. По мере того как его блоки завершаются, задание отслеживает, сколько модулей успешно выполнило свои задачи. Как только желаемое количество успешных завершений будет достигнуто, задание будет завершено.

Как и другие контроллеры, контроллер задания в kubernetes создает новый модуль, если один из его модулей выходит из строя или удаляется.

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

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

...