Установка Cron

Описание

Для YTsaurus есть набор cron-задач, которые полезны при эксплуатации кластера, таких как очистка временных директорий или удаление неактивных нод. Поддерживаются как встроенные, так и пользовательские задачи.

Список встроенных скриптов:

  • clear_tmp - скрипт, который очищает временные файлы на кластере. Код скрипта живет здесь.
  • prune_offline_cluster_nodes - скрипт, который удаляет из Кипариса offline ноды. Код скрипта живет здесь.

Предварительные требования

На данном этапе у вас должны быть:

  • Helm 3.x
  • запущенный кластер YTsaurus и адрес HTTP прокси (http_proxy);
  • специальный пользователь-робот для Cron с выписанным для него токеном (см. раздел Управление токенами).

Базовая установка

helm install ytsaurus-cron oci://ghcr.io/ytsaurus/cron-chart \
  --version 0.0.2 \
  --set yt.proxy="http_proxy" \
  --set yt.token="<ROBOT-CRON-TOKEN>" \
  --set image.tag="0.0.2"

Конфигурация

Все параметры чарта можно задать через values.yaml или с помощью --set в командной строке.

Аутентификация в YTsaurus

Укажите токен напрямую:

yt:
  proxy: yt.company.com
  token: Qwerty123!

Или настройте использование Kubernetes-секрета:

unmanagedSecret:
  enabled: true
  secretKeyRef:
    name: ytadminsec
    key: token

Встроенные задачи (jobs)

Каждая задача задаётся структурой:

  • name: Уникальное имя задачи
  • enabled: Включена ли задача
  • args: Аргументы командной строки
  • schedule: Расписание в формате cron
  • restartPolicy: Политика перезапуска (рекомендуется Never)

Пример включения задачи:

helm upgrade --install ytsaurus-cron oci://ghcr.io/ytsaurus/cron-chart \
  --version 0.0.2 \
  --set jobs[1].enabled=true \
  --set jobs[1].args[5]="tmp_files"

Индексация массива jobs идёт с нуля — следите за порядком задач.

Пользовательские задачи

Можно определить собственные задачи:

additionalJobs:
  - name: my_cleanup
    enabled: true
    args:
      - clear_tmp
      - --directory "//my/custom/path"
    schedule: "0 */6 * * *"
    restartPolicy: Never

Пример values.yaml

yt:
  proxy: yt.mycompany.com
  token: my-secret-token

jobs:
  - name: clear_tmp_files
    enabled: true
    args:
      - clear_tmp
      - --directory "//tmp/yt_wrapper/file_storage"
      - --account "tmp_files"
    schedule: "*/30 * * * *"
    restartPolicy: Never

unmanagedSecret:
  enabled: false

Запуск:

helm upgrade --install ytsaurus-cron oci://ghcr.io/ytsaurus/cron-chart \
  --version 0.0.2 \
  -f my-values.yaml

Часто используемые параметры

Параметр Описание
yt.proxy HTTP-прокси для доступа к YTsaurus
yt.token Токен доступа (если unmanagedSecret отключён)
unmanagedSecret Использовать Kubernetes-секрет
image.repository Образ Docker
image.tag Тег образа
schedule Расписание по умолчанию (если не указано в job)
concurrencyPolicy Allow, Forbid, или Replace
successfulJobsHistoryLimit Сколько успешных задач хранить
failedJobsHistoryLimit Сколько неудачных задач хранить
Предыдущая
Следующая