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 | Введите имя для контейнера. |
Pull Policy | Политика обновления или получения образа. Если выбрать Always, образ будет загружаться из репозитория образов каждый раз. Если не выбрать Always, будет предпочтительно использовать существующий образ узла. Если образ не существует, образ будет загружен из репозитория образов. |
Image Name | Нажмите Select Image и выберите образ, используемый контейнером. Чтобы использовать сторонний образ, введите путь к образу напрямую. Убедитесь, что image access credential может использоваться для доступа к репозиторию образов. Подробности см. в 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 containers могут управлять сетевыми устройствами на хост‑машине, изменять параметры ядра, получать доступ ко всем устройствам узла. Для получения дополнительной информации см. Pod Security Standards. |
(Optional) Init Container | Определяет, использовать ли контейнер в качестве init container. Init container не поддерживает проверку состояния. Init container — это специальный контейнер, который запускается до запуска остальных app containers в pod. Каждый pod может содержать несколько контейнеров. Кроме того, pod может содержать один или несколько init containers. Application 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.
Параметр | Описание |
|---|---|
Labels and Annotations | Добавьте метки или аннотации для pod‑ов, используя пары ключ‑значение. После настройки нажмите Confirm. Подробную информацию о метках и аннотациях см. в Configuring Labels and Annotations. |
Job Settings |
|
Network Configuration |
|
У job есть следующие параметры конфигурации:
Исходя из настроек .spec.completions и .spec.parallelism, job классифицируются по следующим типам.
Job Type | Description | .spec.completions | .spec.parallelism |
|---|---|---|---|
One-off jobs | Job создает один pod, пока он не завершится успешно. | 1 | 1 |
Jobs с фиксированным количеством завершений | Job создает один pod за раз, пока не будет достигнуто .spec.completions успешных выполнений. | > 1 | 1 |
Parallel jobs с фиксированным количеством завершений | Job создает несколько pod одновременно, пока не будет достигнуто .spec.completions успешных выполнений. | > 1 | > 1 |
Parallel jobs с рабочей очередью | Job создает один или несколько pod. Каждый pod берёт одну задачу из очереди сообщений, обрабатывает её и повторяет процесс, пока не будет достигнут конец очереди. Затем pod удаляет задачу и завершает работу. Для получения подробной информации см. Fine Parallel Processing Using a Work Queue. | Оставьте этот параметр пустым. | ≥ 1 |
Ниже приведён пример job, который вычисляет π до 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: perl # Ensure your cluster has internet access to pull the image. If not, use a private or existing image instead.command: ["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
Запустите job.
kubectl apply -f myjob.yaml
Вывод команды:
job.batch/myjob created
kubectl get job
Вывод команды:
NAME COMPLETIONS DURATION AGEmyjob 50/50 23s 3m45s
Если значение COMPLETIONS равно 50/50, job выполнен успешно.
kubectl get pod
Вывод команды:
NAME READY STATUS RESTARTS AGEmyjob-29qlw 0/1 Completed 0 4m5s...
Если статус Completed, job завершена.
kubectl logs myjob-29qlw
Вывод команды:
После создания одноразовой job вы можете выполнить операции, перечисленные в Table 2.
Operation | Description |
|---|---|
Просмотр YAML‑файла | Найдите строку, содержащую целевую job, и выберите More > View YAML, чтобы просмотреть YAML‑файл job. |
Удаление job |
|