Transcoder-chunker
Версия чарта
Версия чарта: 260521.213.3121
OCI-репозиторий: cr.yandex/crpt9c7igqasaqddbg0p/backend/transcoder/chunker/charts/transcoder-chunker
Введение
transcoder-chunker — это сервис, который отвечает за разбиение видео на чанки перед транскодированием. Сервис считывает видео из s3-хранилища, разбивает его на отдельные чанки и отправляет в очередь для последующей обработки.
Важно: Ingress для этого сервиса не требуется (работает как background worker).
Необходимые Secret'ы
Для развертывания необходимы следующие Secret'ы:
ConfigMap'ы генерируются автоматически из шаблонов чарта:
medikt-transcoder-chunker-appsettings.jsonmedikt-transcoder-common-appsettings.common.json(общая конфигурация)
Получение чарта из OCI-репозитория
helm pull oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/transcoder/chunker/charts/transcoder-chunker \
--version 260521.213.3121 \
--untar --untardir ./charts
Развертывание
Установка
helm install medikt-transcoder-chunker ./charts/transcoder-chunker \
--namespace prod \
--values ./values/transcoder-chunker_prod.yaml \
--create-namespace
Обновление
helm upgrade medikt-transcoder-chunker ./charts/transcoder-chunker \
--namespace prod \
--values ./values/transcoder-chunker_prod.yaml
Удаление
helm uninstall medikt-transcoder-chunker --namespace prod
Конфигурация (values.yaml)
Основные параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
dotnet_environment | string | Production | должно быть |
Автомасштабирование
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
autoscaling.enabled | bool | true | Включить autoscaling |
autoscaling.minReplicas | int | 2 | Минимум реплик |
autoscaling.maxReplicas | int | 8 | Максимум реплик |
External Queue Metric (autoscaling)
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
externalQueueMetric.metricName | string | queue_messages_stored_count | Имя метрики |
externalQueueMetric.queueName | string | medikt-net-video-mq | Имя очереди |
externalQueueMetric.queueTargetMessages | int | 2 | Целевое количество сообщений на под |
Volumes
| Имя volume | Тип | Mount path | Описание |
|---|---|---|---|
transcoder-data | emptyDir | /var/lib/transcoder | Временное хранилище (64Gi) |
appsettings-volume | configMap | /app/appsettings.environment.json | Конфигурация приложения |
appsettings-common | configMap | /app/appsettings.common.json | Общая конфигурация |
Конфигурация affinity
Сервис размещается на нодах с label workers_affinity=true.
Примеры значений
Производственная конфигурация (prod)
dotnet_environment: Production
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 8
externalQueueMetric:
metricName: "queue_messages_stored_count"
queueName: "medikt-net-video-mq" # очередь, от размеров которой зависит количество экземпляров приложения
queueTargetMessages: 2
Проверка развертывания
# Проверка статуса релиза
helm list -n prod
# Проверка подов
kubectl get pods -n prod -l app.kubernetes.io/name=transcoder-chunker
# Логи пода
kubectl logs -n prod <pod-name> -f
Примечания
- Сервис использует exec-based probes для health check (проверка файла
/tmp/healthy) - Graceful shutdown может занимать до 12 минут (для завершения текущих операций)
- Autoscaling настроен по количеству сообщений в очереди
medikt-net-video-mq - Целевое значение - 2 сообщения на под (масштабирование при >=2 сообщений)