J02.05. Jobs (Задания)
Что такое Jobs (Задания)?
Jobs (Задания) — функционал Cloud Managed Kubernetes, позволяющий создавать, обеспечивать отслеживать завершение работы подов. Удаление задания приводит к очистке созданных подов. Если созданный под вышел из строя, например, из-за аппаратного сбоя или перезагрузки ноды, то создайте еще одно задание для завершения работы пода. Новое задание можно использовать для параллельного запуска нескольких подов. Этапы создания задания ниже.
Необходимые условия перед выполнением настроек
Перед выполнением настроек должны быть созданы:
- рабочее пространство,
- проект,
- пользователь project-regular.
Пользователь должен быть приглашен в проект и наделен ролью operator.
Создание задания
Создание состоит из следующих последовательных шагов:
1. Открытие дашборда.
2. Ввод основной информации.
3. Настройка стратегии завершения.
4. Установка пода.
5. Проверка манифеста задания.
6. Проверка результатов настройки.
При необходимости проверьте параметры настройки.
Шаг 1. Открытие дашборда
1. Войдите в консоль как project-regular.
2. Перейдите в Jobs раздела Application Workloads и нажмите кнопку Create.
Шаг 2. Ввод основной информации
Заполните основные параметры задания:
- Name: имя, которое является уникальным идентификатором.
- Alias: псевдоним, упрощающий идентификацию ресурсов.
- Description: описание задания.
Шаг 3. Настройка стратегии
При необходимости задайте значения параметрам на шаге или нажмите кнопку Next, чтобы использовать значения по умолчанию.
Параметр | Значение | Описание |
---|---|---|
Maximum Retries (Максимальное количество попыток) | spec.backoffLimit | Указывает максимальное количество повторных попыток, прежде чем это задание будет помечено как неудачное. По умолчанию равно 6. |
Complete Pods (Завершение подов) | spec.completions | Указывает желаемое количество успешно завершенных подов, с которыми должно выполняться задание. 0 означает, что успешное завершение пода сигнализирует об успешном завершении остальных и позволяет иметь любое положительное количество параллельных подов. |
Parallel Pods (Параллельные поды) | spec.parallelism | Указывает максимальное желаемое количество подов, которые задание должно запускать в любой момент времени. Фактическое количество подов, работающих в стабильном состоянии, будет меньше этого числа, когда количество оставшихся заданий меньше максимального количества параллельных подов. |
Maximum Duration (Максимальная продолжительность в секундах) | spec.activeDeadlineSeconds | Указывает продолжительность в секундах относительно времени запуска, в течение которой задание может быть активным, прежде чем система попытается его завершить. Значение должно быть положительным целым числом. |
Шаг 4. Установка пода
1. Выберите Re-create Pod для Restart Policy. Вы можете указать Re-create Pod или Restart container для Restart Policy, только если задание не завершено:
- Если для Restart Policy задано значение Re-create Pod, задание создает новый под при сбое пода. Некорректно работающий под не исчезает.
- Если для параметра Restart Policy задано значение Restart container, задание перезапустит контейнер в случае сбоя пода вместо создания нового.
2. Нажмите кнопку Add Container, чтобы перейти на страницу Add Container. Введите perl в поле поиска изображения и нажмите Enter.
3. На той же странице прокрутите вниз до команды Start Command. Введите следующие команды в поле, которое вычисляет число пи до 2000 знаков, а затем печатает его.
4. Нажмите √ в правом нижнем углу и выберите Next.
Шаг 5. Проверка манифеста задания
1. Включите Edit YAML в правом верхнем углу, чтобы отобразить файл манифеста задания.
kind: Job
metadata:
namespace: demo-project
labels:
app: job-test-1
name: job-test-1
annotations:
kubesphere.io/alias-name: Test
kubesphere.io/description: A job test
spec:
template:
metadata:
labels:
app: job-test-1
spec:
containers:
- name: container-4rwiyb
imagePullPolicy: IfNotPresent
image: perl
command:
- perl
- '-Mbignum=bpi'
- '-wle'
- print bpi(2000)
restartPolicy: Never
serviceAccount: default
initContainers: []
volumes: []
imagePullSecrets: null
backoffLimit: 5
completions: 4
parallelism: 2
activeDeadlineSeconds: 300
2. При необходимости измените манифест, нажмите кнопку Create или отключите Edit YAML, чтобы вернуться на страницу Create.
Шаг 6. Проверка результатов настройки
1. На последнем шаге дополнительных настроек нажмите кнопку Create. Успешно созданное задание появляется в списке.
2. Щелкните задание и перейдите в раздел Job Records с информацией о каждой записи выполнения.
3. В разделе Resource Status при необходимости проверьте статус пода. Два пода создавались каждый раз, когда для параллельных подов было установлено значение 2. Щелкните и щелкните
, чтобы проверить журнал контейнера, в котором отображается ожидаемый результат расчета.
Проверка параметров настройки
При необходимости просмотрите параметры настройки.
Операции
На странице сведений управляйте заданием после его создания.
- Edit Information: изменение основной информации, кроме названия.
- Rerun: повторное создание задания. В результате под перезапустится, создается новая запись выполнения.
- View YAML: просмотр спецификации задания в формате YAML.
- Delete: удаление и возврат на страницу со списком заданий.
Запись о выполнении
1. Щелкните вкладку Job Records, чтобы просмотреть записи выполнения задания.
2. Щелкните , чтобы обновить список записей.
Статус ресурса
1. Перейдите на вкладку Resource Status, чтобы просмотреть информацию о служебных портах, рабочих нагрузках и подах.
2. В области подов щелкните , чтобы обновить информацию о поде, и щелкните
, чтобы отобразить/скрыть контейнеры в каждом поде.
Метаданные
Щелкните вкладку Metadata, чтобы просмотреть метки и аннотации задания.
Переменные среды
Щелкните вкладку Environment Variables, чтобы просмотреть переменные среды задания.
События
Щелкните вкладку Events, чтобы просмотреть события в задании.