Skip to content

Flussonic k8s Media Server Operator

The media-server-operator is an extension for Kubernetes that simplifies the deployment of multiple instances of a media server with the same configuration. It is possible to run without the operator by manually configuring all necessary settings, after which you would need to monitor all changes and manually maintain new features of Flussonic.

media-server-operator addresses the following Kubernetes-specific issues:

  • Organization of license data storage, allowing the media server to be restarted if it loses connection with the license server.
  • Ensures that only one instance runs on a single server with the possibility of using direct network connections (HostPort).
  • Configuration of all monitoring mechanisms and tracking of the server's startup.
  • Convenient configuration of the configuration file, protected from being overwritten during operation.
  • Creation of a service for balancing playback from a pool of media servers.

The operation of the media-server-operator is intended to be used in conjunction with the central-operator, which will ensure the delivery of stream configurations to each media server instance.

Operator Deployment

To utilize the operator, you simply need to apply a YAML file containing the CRD (Custom Resource Definition) to your system.

You require a running Kubernetes cluster and kubectl configured to interact with it.

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

For production installations, it's recommended to specify the version explicitly. A complete list of versions is available in the repository, for example:

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

After specifying the version, you can proceed to launch media servers. Below is an example that will create a secret with the license and start the media server:

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

Distribution

The operator is packaged for maximum convenience, suitable for use both in internet-connected clouds and in private networks. It consists of two parts:

These can be downloaded and stored locally for deployment.