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 на машине и выведет список всех запущенных процессов внутри контейнера.

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