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

Transcoder-gluer

Версия чарта

Версия чарта: 260521.213.3121 OCI-репозиторий: cr.yandex/crpt9c7igqasaqddbg0p/backend/transcoder/gluer/charts/transcoder-gluer

Введение

transcoder-gluer — это сервис, который отвечает за склеивание (объединение) видео-чанков в финальное видео. Сервис считывает чанки из очереди и объединяет их, создавая готовый видеофайл.

Важно: Ingress для этого сервиса не требуется (работает как background worker).

Необходимые Secret'ы

Для развертывания необходимы следующие Secret'ы:

ConfigMap'ы генерируются автоматически из шаблонов чарта:

  • medikt-transcoder-gluer - appsettings.json
  • medikt-transcoder-common - appsettings.common.json (общая конфигурация)

Получение чарта из OCI-репозитория

helm pull oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/transcoder/gluer/charts/transcoder-gluer \
--version 260521.213.3121 \
--untar --untardir ./charts

Развертывание

Установка

helm install medikt-transcoder-gluer ./charts/transcoder-gluer \
--namespace prod \
--values ./values/transcoder-gluer_prod.yaml \
--create-namespace

Обновление

helm upgrade medikt-transcoder-gluer ./charts/transcoder-gluer \
--namespace prod \
--values ./values/transcoder-gluer_prod.yaml

Удаление

helm uninstall medikt-transcoder-gluer --namespace prod

Конфигурация (values.yaml)

Основные параметры

ПараметрТипПо умолчаниюОписание
dotnet_environmentstringStagingОкружение .NET (Staging/Production) TODO: проверить использование
replicaCountint2Количество реплик
transcoderApiGrpcAddressstringhttp://medikt-transcoder-api:8081Адрес transcoder-api сервиса

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

ПараметрТипПо умолчаниюОписание
resources.limits.cpustring2000mЛимит CPU
resources.requests.cpustring1000mЗапрос CPU
autoscaling.enabledboolfalseAutoscaling по умолчанию отключен
autoscaling.minReplicasint2Минимум реплик
autoscaling.maxReplicasint4Максимум реплик

External Queue Metric (autoscaling)

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

Scale Behavior

ПараметрТипПо умолчаниюОписание
scaleUp.stabilizationWindowSecondsint300Время стабилизации для scale-up (5 минут)
scaleUp.periodSecondsint300Период scale-up
scaleDown.stabilizationWindowSecondsint1200Время стабилизации для scale-down (20 минут)

Volumes

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

Аффинность

Сервис размещается на нодах с label workers_affinity=true.

Примеры значений

Производственная конфигурация (prod)

autoscaling:
enabled: false
minReplicas: 2
maxReplicas: 8
externalQueueMetric:
metricName: "queue_messages_stored_count"
queueName: "medikt-net-glue-mq"
queueTargetMessages: 2
scaleUp:
stabilizationWindowSeconds: 600
periodSeconds: 300
scaleDown:
stabilizationWindowSeconds: 1200

Проверка развертывания

# Проверка статуса релиза
helm list -n prod

# Проверка подов
kubectl get pods -n prod -l app.kubernetes.io/name=transcoder-gluer

# Логи пода
kubectl logs -n prod <pod-name> -f

Примечания

  1. Сервис использует exec-based probes для health check (проверка файла /tmp/healthy)
  2. Graceful shutdown может занимать до 12 минут (для завершения текущих операций)
  3. Autoscaling по умолчанию отключен (можно включить при необходимости)
  4. Нагрузка на CPU около 2000m при активной работе
  5. По умолчанию 2 реплики для HA