Skip to content

Flussonic k8s Media Server Operator

media-server-operator это расширение для Kubernetes, позволяющее упростить запуск нескольких экземпляров media server с одинаковой конфигурацией. Можно запустить без оператора, прописав все необходимые настройки руками, после чего прийдется отслеживать все изменения и поддерживать новые возможности Flussonic вручную.

media-server-operator берет на себя следующие вопросы, специфичные для Kubernetes:

  • организация хранения лицензионных данных, позволяющая перезапускать медиасервер при потере связи с сервером лицензий
  • запуск строго по одному экземпляру на одном сервере с возможностью использования прямого подключения к сети (HostPort)
  • настройка всех механизмов мониторинга и слежения за запуском сервера
  • удобная настройка конфигурационного файла, защищенного от перезаписи в процессе работы
  • создание сервиса для балансировки проигрывания с пула медиасерверов

Работа media-server-operator подразумевается вместе с central-operator, который обеспечит доставку конфигурации потоков до каждого экземпляра медиа сервера.

Запуск оператора

Для того, чтобы воспользоваться оператором, достаточно просто поставить в систему yml файл c CRD (описанием нового типа).

Вам нужен запущенный Kubernetes и настроенный на него kubectl

kubectl apply -f https://flussonic.github.io/media-server-operator/latest/operator.yaml

Для продакшн инсталяции рекомендуем жестко указывать версию, полный список которых доступен в репозитории, например:

kubectl apply -f https://flussonic.github.io/media-server-operator/24.3.3/operator.yaml

После этого можно запускать медиасервера. Пример, который создаст секрет с лицензией и запустит медиасервер ниже:

kubectl label nodes streamer flussonic.com/streamer=true
kubectl create secret generic flussonic-license \
    --from-literal=license_key="${LICENSE_KEY}" \
    --from-literal=edit_auth="root:password"
kubectl apply -f https://raw.githubusercontent.com/flussonic/media-server-operator/master/config/samples/media_v1alpha1_mediaserver.yaml

Вместо ${LICENSE_KEY} надо подставить ваш лицензионный ключ.

После выполнения этих действий на ноде с именем streamer запустится медиасервер.

Поставка

Мы упаковали оператор так, чтобы им было максимально удобно пользоваться как в подключенном к интернету облаке, так и в приватном. Он состоит из двух частей:

  • yml файл с описанием k8s CRD (за этими абревиатурами прячется описание нового типа объектов для кубернетеса)
  • docker образ с нашим кодом на https://hub.docker.com/r/flussonic/media-server-controller

Их можно скачать и хранить у себя локально.