CronJob — это рабочая нагрузка Kubernetes, предназначенная для выполнения периодических задач, аналогично crontab в Linux. CronJob используют формат Cron. Они периодически выполняют задания по заранее определённым расписаниям.
CronJob помогают автоматизировать и управлять задачами, обеспечивая их своевременное выполнение и снижая нагрузку ручного управления. Они подходят для различных сценариев, включая:
Параметр | Описание |
|---|---|
Тип рабочей нагрузки | Выберите Cron Job. Подробную информацию о различных типах рабочих нагрузок см. в Workload Overview. |
Workload Name | Введите имя для рабочей нагрузки. Введите от 1 до 52 символов, начинающихся со строчной буквы и заканчивающихся строчной буквой или цифрой. Разрешены только строчные буквы, цифры и дефисы (-). |
Namespace | Select a namespace for the workload. The default value is default. You can also click Create Namespace to create one. For details, see Creating a Namespace. |
Container Runtime | Стандартный кластер CCE использует общий runtime по умолчанию, тогда как кластер CCE Turbo поддерживает как общий, так и защищённый runtime. Подробную информацию об их различиях см. в Secure Runtime and Common Runtime. |
Если вы настроили несколько контейнеров для pod, убедитесь, что порты, используемые каждым контейнером, не конфликтуют друг с другом, иначе рабочая нагрузка не может быть развернута.
Параметр | Описание |
|---|---|
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. |
(Необязательно) GPU Quota | Настраивается только при наличии в кластере узлов GPU и установленного дополнения CCE AI Suite (NVIDIA GPU).
Подробности об использовании GPU в кластере см. в Default GPU Scheduling in Kubernetes. |
(Необязательно) Privileged Container | Программы в привилегированном контейнере обладают определёнными привилегиями. Если эта опция включена, контейнеру будут назначены привилегии. Например, привилегированные контейнеры могут управлять сетевыми устройствами на хост‑машине, изменять параметры ядра, получать доступ ко всем устройствам узла. Для получения дополнительной информации см. Pod Security Standards. |
(Необязательно) Init Container | Определяет, использовать ли контейнер в качестве init‑контейнера. Init‑контейнер не поддерживает проверку состояния. Init container — это специальный контейнер, который запускается до того, как будут запущены другие контейнеры приложений в pod. Каждый pod может содержать несколько контейнеров. Кроме того, pod может содержать один или несколько init container. Контейнеры приложений в pod запускаются и работают только после завершения работы всех init container. Для получения подробной информации см. Init Containers. |
(Optional) Run Option | Добавьте параметры запуска для контейнера. Для получения подробной информации см. Pod. CCE поддерживает следующие параметры запуска:
|
Parameter | Description |
|---|---|
Concurrency Policy | Поддерживаются следующие режимы: |
Настройки политики | Укажите, когда будет выполнен новый CronJob. Настройки политики в YAML реализуются с помощью cron‑выражений.
ПРИМЕЧАНИЕ:
|
Часовой пояс | Укажите часовой пояс, в котором применяются настройки политики. Если этот параметр не указан, по умолчанию будет использоваться часовой пояс главного узла. |
Job Records | Настройте количество успешных или неуспешных джоб, которые резервируются. Если значение установлено в 0, джобы не будут резервироваться после завершения или неудачи. |
Parameter | Description |
|---|---|
Labels and Annotations | Добавьте метки или аннотации для pod, используя пары ключ-значение. После настройки нажмите Confirm. Подробную информацию о метках и аннотациях см. в Configuring Labels and Annotations. |
Network Configuration |
|
У CronJob есть следующие параметры конфигурации:
Ниже приведён пример CronJob, сохранённый в файле cronjob.yaml.
В кластерах версии v1.21 и новее apiVersion CronJob — batch/v1.
В кластерах версии ниже v1.21 apiVersion CronJob — batch/v1beta1.
apiVersion: batch/v1kind: CronJobmetadata:name: hellospec:schedule: "*/1 * * * *" # The job is executed every minute.jobTemplate:spec:template:spec:containers:- name: helloimage: busyboxcommand:- /bin/sh- -c- date; echo Hello from the Kubernetes clusterrestartPolicy: OnFailureimagePullSecrets:- name: default-secret
Запустите задание.
kubectl create -f cronjob.yaml
Отображается информация, аналогичная следующей:
cronjob.batch/hello created
kubectl get cronjob
Вывод команды:
NAME SCHEDULE TIMEZONE SUSPEND ACTIVE LAST SCHEDULE AGEhello */1 * * * * <none> False 0 59s 2m36s
kubectl get jobs
Вывод команды:
NAME COMPLETIONS DURATION AGEhello-1597387980 1/1 27s 45s
kubectl get pod
Вывод команды:
NAME READY STATUS RESTARTS AGEhello-1597387980-tjv8f 0/1 Completed 0 114s
kubectl logs hello-1597387980-tjv8f
Вывод команды:
Fri Aug 14 06:56:31 UTC 2020Hello from the Kubernetes cluster
kubectl delete cronjob hello
Вывод команды:
cronjob.batch "hello" deleted
После создания CronJob вы можете выполнить операции, перечисленные в Table 1.
Операция | Описание |
|---|---|
Редактирование YAML‑файла | Нажмите More > Edit YAML рядом с именем CronJob, чтобы отредактировать YAML‑файл текущего job. |
Остановка CronJob |
|
Удаление CronJob |
|