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:
- A YAML file with the k8s CRD description (these abbreviations stand for Custom Resource Definition, which is a specification for creating new types of objects in Kubernetes).
- A Docker image with our code on https://hub.docker.com/r/flussonic/media-server-controller.
These can be downloaded and stored locally for deployment.