Основной функцией задания является создание одного или нескольких модулей и отслеживание их успешности. Они гарантируют, что указанное количество модулей успешно завершено. Когда указанное количество успешных запусков модулей завершено, задание считается завершенным.
Создание работы
Используйте следующую команду, чтобы создать работу —
apiVersion: v1 kind: Job ------------------------> 1 metadata: name: py spec: template: metadata name: py -------> 2 spec: containers: - name: py ------------------------> 3 image: python----------> 4 command: ["python", "SUCCESS"] restartPocliy: Never --------> 5
В приведенном выше коде мы определили —
-
kind: Job → Мы определили вид как Job, который сообщит kubectl, что используемый файл yaml предназначен для создания модуля типа задания.
-
Имя: py → Это имя шаблона, который мы используем, и спецификация определяет шаблон.
-
name: py → мы дали имя как py под спецификацией контейнера, которая помогает идентифицировать Pod, который будет создан из него.
-
Image: python → изображение, которое мы собираемся вытащить, чтобы создать контейнер, который будет работать внутри контейнера.
-
restartPolicy: Never → Это условие перезапуска изображения задано как никогда, что означает, что если контейнер уничтожен или имеет значение false, он не будет перезапускаться сам.
kind: Job → Мы определили вид как Job, который сообщит kubectl, что используемый файл yaml предназначен для создания модуля типа задания.
Имя: py → Это имя шаблона, который мы используем, и спецификация определяет шаблон.
name: py → мы дали имя как py под спецификацией контейнера, которая помогает идентифицировать Pod, который будет создан из него.
Image: python → изображение, которое мы собираемся вытащить, чтобы создать контейнер, который будет работать внутри контейнера.
restartPolicy: Never → Это условие перезапуска изображения задано как никогда, что означает, что если контейнер уничтожен или имеет значение false, он не будет перезапускаться сам.
Мы создадим задание, используя следующую команду с yaml, которая сохраняется с именем py.yaml .
$ kubectl create –f py.yaml
Приведенная выше команда создаст задание. Если вы хотите проверить состояние задания, используйте следующую команду.
$ kubectl describe jobs/py
Приведенная выше команда создаст задание. Если вы хотите проверить состояние задания, используйте следующую команду.
Запланированная работа
Запланированная работа в Kubernetes использует Cronetes , которая берет работу Kubernetes и запускает их в кластере Kubernetes.
- Планирование работы будет запускать модуль в определенный момент времени.
- Для него создается пародийное задание, которое запускается автоматически.
Примечание . Функция запланированного задания поддерживается версией 1.4, и API betch / v2alpha 1 включается путем передачи –runtime-config = batch / v2alpha1 при запуске сервера API.
Мы будем использовать тот же yaml, который мы использовали для создания задания и сделать его запланированным.
apiVersion: v1 kind: Job metadata: name: py spec: schedule: h/30 * * * * ? -------------------> 1 template: metadata name: py spec: containers: - name: py image: python args: /bin/sh -------> 2 -c ps –eaf ------------> 3 restartPocliy: OnFailure
В приведенном выше коде мы определили —
-
график работы: ч / 30 * * * *? → Чтобы запланировать выполнение задания каждые 30 минут.
-
/ bin / sh: это будет входить в контейнер с / bin / sh
-
ps –eaf → Запустит команду ps -eaf на компьютере и выведет список всех запущенных процессов внутри контейнера.
график работы: ч / 30 * * * *? → Чтобы запланировать выполнение задания каждые 30 минут.
/ bin / sh: это будет входить в контейнер с / bin / sh
ps –eaf → Запустит команду ps -eaf на компьютере и выведет список всех запущенных процессов внутри контейнера.
Эта концепция запланированного задания полезна, когда мы пытаемся создать и запустить набор задач в определенный момент времени, а затем завершить процесс.