Skip to main content
Version: 1.12-grodno (current)

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.json
  • medikt-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_environmentstringStagingДолжно быть Production
replicaCountint2Количество реплик
terminationGracePeriodSecondsint720Время на graceful shutdown (12 минут)

масштабирование

ПараметрТипПо умолчаниюОписание
autoscaling.enabledbooltrueВключить autoscaling
autoscaling.minReplicasint2Минимум реплик
autoscaling.maxReplicasint8Максимум реплик

External Queue Metric (autoscaling)

ПараметрТипПо умолчаниюОписание
externalQueueMetric.metricNamestringqueue_messages_stored_countИмя метрики
externalQueueMetric.queueNamestringmedikt-net-stream-mq.fifoИмя очереди (FIFO)
externalQueueMetric.queueTargetMessagesint2Целевое количество сообщений на под

Volumes

Имя volumeТипMount pathОписание
transcoder-dataemptyDir/var/lib/transcoderВременное хранилище (64Gi)
appsettings-volumeconfigMap/app/appsettings.environment.jsonКонфигурация приложения
appsettings-commonconfigMap/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

Примечания

  1. Сервис использует exec-based probes для health check (проверка файла /tmp/healthy)
  2. Graceful shutdown может занимать до 12 минут (для завершения текущих операций)
  3. Autoscaling настроен по количеству сообщений в очереди medikt-net-stream-mq.fifo (FIFO очередь)
  4. Целевое значение - 2 сообщения на под (масштабирование при >=2 сообщений)
  5. Нагрузка на CPU около 2000m при активной работе
  6. Требуются preemptible ноды для экономии ресурсов