Учебники

Кубернетес — Работа

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

Создание работы

Используйте следующую команду, чтобы создать работу —

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

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