job — это рабочая нагрузка Kubernetes, предназначенная для управления пакетными задачами, обрабатывающими одноразовые или кратковременные задачи. В отличие от длительно работающих сервисов, управляемых Deployments или StatefulSets, job создаёт один или несколько pod‑ов, выполняя их с определёнными фазами запуска и завершения. Если задача не завершена, job повторно запускает pod до достижения цели.
При необходимости вы можете задать разные задачи для job.
Параметр | Описание |
|---|---|
Workload Type | Выберите Job. Для получения подробной информации о различных типах рабочих нагрузок см. Workload Overview. |
Workload Name | Введите имя для рабочей нагрузки. Введите от 1 до 63 символов, начинающихся со строчной буквы и заканчивающихся строчной буквой или цифрой. Разрешены только строчные буквы, цифры и дефисы (-). |
Namespace | Выберите пространство имён для рабочей нагрузки. Значение по умолчанию — default. Вы также можете нажать Create Namespace, чтобы создать его. Для получения подробной информации см. Creating a Namespace. |
Pods | Введите количество pod‑ов рабочей нагрузки. |
Container Runtime | Стандартный кластер CCE использует общий runtime по умолчанию, тогда как кластер CCE Turbo поддерживает как общий, так и защищённый runtime. Для получения подробной информации об их различиях см. Secure Runtime and Common Runtime. |
Если вы настроили несколько контейнеров для pod‑а, убедитесь, что порты, используемые каждым контейнером, не конфликтуют друг с другом, иначе рабочая нагрузка не может быть развернута.
Parameter | Description |
|---|---|
Container Name | Введите имя для container. |
Pull Policy | Политика обновления или получения образа. Если выбрать Always, образ будет загружаться из image repository каждый раз. Если не выбрать Always, предпочтительно используется существующий образ узла. Если образ не существует, образ будет загружен из image repository. |
Image Name | Нажмите Select Image и выберите образ, используемый контейнером. Чтобы использовать сторонний образ, непосредственно введите путь к образу. Убедитесь, что image access credential может использоваться для доступа к image repository. Подробнее см. Using Third-Party Images. |
Image Tag | Выберите тег образа для развертывания. |
CPU Quota |
Если Request и Limit не указаны, квота не ограничивается. Для получения дополнительной информации и рекомендаций по Request и Limit см. Configuring Container Specifications. |
Memory Quota |
Если Request и Limit не указаны, квота не ограничивается. Для получения дополнительной информации и рекомендаций по Request и Limit см. Configuring Container Specifications. |
(Optional) GPU Quota | Настраивается только при наличии в кластере узлов GPU и установленного дополнения CCE AI Suite (NVIDIA GPU).
Подробности о том, как использовать GPU в кластере, см. Default GPU Scheduling in Kubernetes. |
(Optional) Privileged Container | Программы в privileged container имеют определённые привилегии. Если эта опция включена, контейнеру будут предоставлены привилегии. Например, privileged container могут управлять сетевыми устройствами на хост‑машине, изменять параметры ядра, получать доступ ко всем устройствам узла. Для получения дополнительной информации см. Pod Security Standards. |
(Optional) Init Container | Определяет, использовать ли контейнер в качестве init container. Init container не поддерживает проверку состояния. Init container — это специальный контейнер, который запускается до того, как будут запущены другие контейнеры приложений в pod. Каждый pod может содержать несколько контейнеров. Кроме того, pod может содержать один или несколько init containers. Контейнеры приложений в pod запускаются и работают только после завершения работы всех init containers. Для подробностей см. Init Containers. |
(Необязательно) Run Option | Добавьте параметры запуска для контейнера. Для получения подробной информации см. Pod. CCE поддерживает следующие параметры запуска:
|
Если рабочая нагрузка содержит более одного pod, тома EVS монтировать нельзя.
To disable the collection of the standard output logs of the current workload, add the annotation kubernetes.AOM.log.stdout: [] in Labels and Annotations in the Advanced Settings area. For details about how to use this annotation, see Table 1.
Параметр | Описание |
|---|---|
Метки и Аннотации | Добавьте метки или аннотации для pod'ов, используя пары ключ‑значение. После настройки нажмите Confirm. Для получения подробной информации о метках и аннотациях см. Configuring Labels and Annotations. |
Настройки Job |
|
Конфигурация сети |
|
У job есть следующие параметры конфигурации:
Исходя из настроек .spec.completions и .spec.parallelism, job классифицируются по следующим типам.
Job Type | Описание | .spec.completions | .spec.parallelism |
|---|---|---|---|
One-off jobs | Job создает один pod, пока он не завершится успешно. | 1 | 1 |
Jobs с фиксированным количеством завершений | Задание создает один pod за раз, пока не будет достигнуто .spec.completions успешных выполнений. | > 1 | 1 |
Parallel jobs с фиксированным количеством завершений | Задание создает несколько pod одновременно, пока не будет достигнуто .spec.completions успешных выполнений. | > 1 | > 1 |
Parallel jobs с рабочей очередью | Задание создает один или несколько pod. Каждый pod берёт одну задачу из очереди сообщений, обрабатывает её и повторяет процесс, пока не будет достигнут конец очереди. Затем pod удаляет задачу и завершает работу. Подробности см. Fine Parallel Processing Using a Work Queue. | Оставьте этот параметр пустым. | ≥ 1 |
Ниже приведено примерное задание, которое вычисляет π до 2000й цифры и выводит результат.
apiVersion: batch/v1kind: Jobmetadata:name: myjobspec:completions: 50 # A total of 50 pods need to run to finish a job. In this example, π is printed for 50 times.parallelism: 5 # A total of 5 pods run in parallel.backoffLimit: 5 # A maximum of 5 retries is allowed.template:spec:containers:- name: piimage: perlcommand: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]restartPolicy: Never # For a job, set this parameter to Never or OnFailure. For other controllers (such as Deployments), set this parameter to Always.imagePullSecrets:- name: default-secret
Запустите задание.
kubectl apply -f myjob.yaml
Вывод команды:
job.batch/myjob created
kubectl get job
Вывод команды:
NAME COMPLETIONS DURATION AGEmyjob 50/50 23s 3m45s
Если значение COMPLETIONS равно 50/50, задание выполнено успешно.
kubectl get pod
Вывод команды:
NAME READY STATUS RESTARTS AGEmyjob-29qlw 0/1 Completed 0 4m5s...
Если статус Completed, задача завершена.
kubectl logs myjob-29qlw
Вывод команды:
После создания одноразовой задачи вы можете выполнить операции, перечисленные в Table 2.
Операция | Описание |
|---|---|
Просмотр YAML‑файла | Найдите строку, содержащую целевую задачу, и выберите More > View YAML, чтобы просмотреть YAML‑файл задачи. |
Удаление задачи |
|