Transcoder-composer
Версия чарта
Версия чарта: 260521.213.3121
OCI-репозиторий: cr.yandex/crpt9c7igqasaqddbg0p/backend/transcoder/composer/charts/transcoder-composer
Введение
transcoder-composer — это сервис, который отвечает за композицию (сборку) обработанных видео. Сервис считывает обработанные чанки из очереди и собирает из них финальное видео.
Важно: Ingress для этого сервиса не требуется (работает как background worker).
Необходимые Secret'ы
Для развертывания необходимы следующие Secret'ы:
ConfigMap'ы генерируются автоматически из шаблонов чарта:
medikt-transcoder-composer-appsettings.jsonmedikt-transcoder-common-appsettings.common.json(Общая конфигурация для сервисов группы transcoder)
Получение чарта из OCI-репозитория
helm pull oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/transcoder/composer/charts/transcoder-composer \
--version 260521.213.3121 \
--untar --untardir ./charts
Развертывание
Установка
helm install medikt-transcoder-composer ./charts/transcoder-composer \
--namespace prod \
--values ./values/transcoder-composer_prod.yaml \
--create-namespace
Обновление
helm upgrade medikt-transcoder-composer ./charts/transcoder-composer \
--namespace prod \
--values ./values/transcoder-composer_prod.yaml
Удаление
helm uninstall medikt-transcoder-composer --namespace prod
Конфигурация (values.yaml)
Основные параметры
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
dotnet_environment | string | Staging | Должно быть Production |
replicaCount | int | 2 | Количество реплик |
terminationGracePeriodSeconds | int | 720 | Время на graceful shutdown (12 минут) |
масштабирование
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
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-stream-mq.fifo | Имя очереди (FIFO) |
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 и требует preemptible ноды (yandex.cloud/preemptible=false).
Примеры значений
Производственная конфигурация (prod)
dotnet_environment: Production
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 8
externalQueueMetric:
metricName: "queue_messages_stored_count"
queueName: "medikt-net-stream-mq.fifo"
queueTargetMessages: 2
Dev/Stage конфигурация
dotnet_environment: Staging
replicaCount: 1
autoscaling:
enabled: false
Проверка развертывания
# Проверка статуса релиза
helm list -n prod
# Проверка подов
kubectl get pods -n prod -l app.kubernetes.io/name=transcoder-composer
# Логи пода
kubectl logs -n prod <pod-name> -f
Примечания
- Сервис использует exec-based probes для health check (проверка файла
/tmp/healthy) - Graceful shutdown может занимать до 12 минут (для завершения текущих операций)
- Autoscaling настроен по количеству сообщений в очереди
medikt-net-stream-mq.fifo(FIFO очередь) - Целевое значение - 2 сообщения на под (масштабирование при >=2 сообщений)
- Нагрузка на CPU около 2000m при активной работе
- Требуются preemptible ноды для экономии ресурсов