All you need to deploy Collabora Online on your Kubernetes setup, is applying these configuration settings on your installation of Collabora Online.
Install Collabora Online on Kubernetes in 3 easy steps
With the increasing use of the Kubernetes, we are happy to provide an easy way to deploy our online on your Kubernetes setup.
Thanks to Collabora developer lpranam, Collabora Online can be setup with Kubernetes and also a key feature such as collaborative editing will work correctly. Therefore it is vital to ensure that all users editing the same document end up being served by the same pod. Using the WOPI protocol, the http/https URL includes a unique identifier (WOPISrc) for use with that document. Thus load balancing can be done by using WOPISrc – ensuring that all URLs that contain the same WOPISrc are sent to the same pod. We use a reverse proxy to achieve this load balancing mechanism. HAProxy provides the easiest way to achieve all are requirements for this setup.
Configuration files can be found at github.com/CollaboraOnline/online/tree/master/kubernetes/helm/collabora-online
- Install HAProxy ingress controller
kubectl apply -f https://raw.githubusercontent.com/haproxytech/kubernetes-ingress/master/deploy/haproxy-ingress.yaml
Prepare the namespace in the Kubernetes cluster with this command
kubectl create namespace collabora
- Install collabora online helm chart
helm install collabora-online ./kubernetes/helm/collabora-online/
Accessing online service
The following steps may vary a little according to your cloud providers. Here we demonstrate how to access the online with a minikube setup on a local machine.
HAproxy is installed as a NodePort service so to access any service through HAProxy we can use the node’s ip.
- To get your node ip with minikube
2. Each container port is mapped to a
NodePort port via the
Service object. To find those ports
kubectl get svc --namespace=haproxy-controller
In this instance, the following ports were mapped:
- Container port 80 to NodePort 30536
- Container port 443 to NodePort 31821
- Container port 1024 to NodePort 30480
3. Now in this case to make our hostname available we have to add the following line into /etc/hosts:
Feedback and community
If you have feedback, or want to get involved somehow: here’s our cool-dev community!