Kubernetes - Работа
Основная функция задания - создать один или несколько модулей и отслеживать их успешность. Они гарантируют, что указанное количество контейнеров будет успешно завершено. Когда указанное количество успешных запусков модулей выполнено, задание считается завершенным.
Создание работы
Используйте следующую команду для создания работы -
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 → Мы определили вид как Иов, который скажет kubectl что yaml файл используется для создания модуля типа задания.
Name:py → Это имя шаблона, который мы используем, и спецификация определяет шаблон.
name: py → мы дали имя как py под спецификацией контейнера, которая помогает идентифицировать под, который будет создан из него.
Image: python → изображение, которое мы собираемся использовать для создания контейнера, который будет работать внутри модуля.
restartPolicy: Never →Это условие перезапуска образа задано как никогда, что означает, что если контейнер убит или если оно ложно, он не перезапустится сам.
Мы создадим задание, используя следующую команду с yaml, которая сохраняется под именем py.yaml.
$ kubectl create –f py.yaml
Приведенная выше команда создаст задание. Если вы хотите проверить статус задания, используйте следующую команду.
$ kubectl describe jobs/py
Приведенная выше команда создаст задание. Если вы хотите проверить статус задания, используйте следующую команду.
Запланированная работа
Запланированное задание в Kubernetes использует Cronetes, который берет задания Kubernetes и запускает их в кластере Kubernetes.
- При планировании задания модуль запускается в определенный момент времени.
- Для него создается пародийное задание, которое запускается автоматически.
Note - Функция запланированного задания поддерживается версией 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
В приведенном выше коде мы определили -
schedule: h/30 * * * * ? → Чтобы запланировать запуск задания каждые 30 минут.
/bin/sh: Это войдет в контейнер с / bin / sh
ps –eaf → Запустит команду ps -eaf на машине и выведет список всех запущенных процессов внутри контейнера.
Эта концепция запланированного задания полезна, когда мы пытаемся создать и запустить набор задач в определенный момент времени, а затем завершить процесс.