Transcoder.API
Введение
Версия чарта: 260521.213.3121
OCI-репозиторий: cr.yandex/crpt9c7igqasaqddbg0p/backend/transcoder/api/charts/transcoder-api
Ingress: transcoder.medikt.net (управляется через Terraform)
Важно: Управление Ingress для всех сервисов осуществляется через Terraform. Параметр ingress.enabled должен быть установлен в false в values.yaml.
Введение
transcoder-api — это gRPC сервис, который является conductor'ом для процесса транскодирования видео. Сервис обрабатывает запросы на создание и управление задачами транскодирования, взаимодействует с Yandex Cloud Video, EdgeCenter и другими компонентами системы.
Важно: Ingress для этого сервиса управляется через Terraform модуль medikt-infra (параметр nginx_ingress_medikt_transcoder_api).
Необходимые Secret'ы
Для развертывания необходимы следующие Secret'ы:
- featbit-appsettings
- edgecenter-creds
- nats-connection-string
- transcoder-api-db-connection-string
- transcoder-sa-creds
ConfigMap'ы генерируются автоматически из шаблонов чарта:
medikt-transcoder-api-appsettings.jsonmedikt-transcoder-common-appsettings.common.json(общая конфигурация)
Получение чарта из OCI-репозитория
helm pull oci://cr.yandex/crpt9c7igqasaqddbg0p/backend/transcoder/api/charts/transcoder-api \
--version 260521.213.3121 \
--untar --untardir ./charts
Развертывание
Установка
helm install medikt-transcoder-api ./charts/transcoder-api \
--namespace prod \
--values ./values/transcoder-api_prod.yaml \
--create-namespace
Обновление
helm upgrade medikt-transcoder-api ./charts/transcoder-api \
--namespace prod \
--values ./values/transcoder-api_prod.yaml
Удаление
helm uninstall medikt-transcoder-api --namespace prod
Конфигурация (values.yaml)
Основные параметры (заданы в чарте)
EdgeCenter
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
edgeCenter.baseUrl | string | https://api.edgecenter.ru/streaming | Base URL EdgeCenter API |
edgeCenter.webhookKey | string | (в values.yaml) | Ключ для webhook |
edgeCenter.customCdnHost | string | не применимо | Кастомный CDN хост только для девелоперских окружений |
Volumes
| Имя volume | Тип | Mount path | Описание |
|---|---|---|---|
transcoder-data | emptyDir | /var/lib/transcoder | Временное хранилище |
appsettings-volume | configMap | /app/appsettings.environment.json | Конфигурация приложения |
appsettings-common | configMap | /app/appsettings.common.json | Общая конфигурация для сервисов группы transcoder |
Конфигурация affinity
Сервис размещается на нодах с label api_affinity=true и yandex.cloud/preemptible=false
Проверка развертывания
# Проверка статуса релиза
helm list -n prod
# Проверка подов
kubectl get pods -n prod -l app.kubernetes.io/name=transcoder-api
# Проверка сервиса
kubectl get svc -n prod medikt-transcoder-api
# Логи пода
kubectl logs -n prod <pod-name> -f