I would like to run crowdrender agents in a k8s cluster. Already started a helm chart. But I got one Problem so far:
Kubernetes Loadbalancers are not really meant for opening big port-ranges.
The are more meant like heaving 80 and 443 and a reverseproxy as ingress controller, e.g. Nginx.
(Yes, you can open multiple ports via config, but not all Loadbalancers of k8s- or ComputeEngine providers allow such a high number of target ports)
There are thre ways, that come to my mind, how this could be handled.
First (and more of a temporary) solution would be, to allow different paths in the blender-plugin.
this allows the usage of different paths in the Ingress resource, that can be routed to the different ports of the docker container.
Second solution would be, to require only a single port (but could be multiple connections if needed). This would allow me to use one subdomain or path per agent. Would not be the ideal solution, but would be much mor usable with the k8s+nginx+Loadbalancer setup.
have a separate application as controller, that distributes the load between the agents. The crowdrender plugin should only comunicate with the controller, while the agents also only communicate with the controller and not the blender-plugin. This would allow a much better scaling (that can be done automatically via HPA).