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.jsonmedikt-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_environment | string | Staging | Окружение .NET (Staging/Production) TODO: проверить использование |
replicaCount | int | 2 | Количество реплик |
transcoderApiGrpcAddress | string | http://medikt-transcoder-api:8081 | Адрес transcoder-api сервиса |
Масштабирование
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
resources.limits.cpu | string | 2000m | Лимит CPU |
resources.requests.cpu | string | 1000m | Запрос CPU |
autoscaling.enabled | bool | false | Autoscaling по умолчанию отключен |
autoscaling.minReplicas | int | 2 | Минимум реплик |
autoscaling.maxReplicas | int | 4 | Максимум реплик |
External Queue Metric (autoscaling)
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
externalQueueMetric.metricName | string | queue_messages_stored_count | Имя метрики |
externalQueueMetric.queueName | string | medikt-net-glue-mq | Имя очереди |
externalQueueMetric.queueTargetMessages | int | 2 | Целевое количество сообщений на под |
Scale Behavior
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
scaleUp.stabilizationWindowSeconds | int | 300 | Время стабилизации для scale-up (5 минут) |
scaleUp.periodSeconds | int | 300 | Период scale-up |
scaleDown.stabilizationWindowSeconds | int | 1200 | Время стабилизации для scale-down (20 минут) |
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 | Общая конфигурация |
Аффинность
Сервис размещается на нодах с 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
Примечания
- Сервис использует exec-based probes для health check (проверка файла
/tmp/healthy) - Graceful shutdown может занимать до 12 минут (для завершения текущих операций)
- Autoscaling по умолчанию отключен (можно включить при необходимости)
- Нагрузка на CPU около 2000m при активной работе
- По умолчанию 2 реплики для HA