Farming with Docker

Great tutorial!  I was wondering with the existence of docker and kubernetes.  Would you change this setup to use a a single powerful  machine and creating a docker swarm to mimic a rendering farm?  Do you forsee any drawbacks to this approach?

  • Kent Trammell replied

    Thanks! I'm not familiar with docker or kubernetes. But the farm I built in this tutorial has worked very well for me over the years. Hardware has since failed (power supplies only so far) and I'm down to 2 working nodes, but the farm has enabled me to do way more rendering than would be practical on one machine."

    Although I'm not a hardware guru and am not super up-to-date with the latest cluster and/or GPU tech. That's to say I wouldn't be too surprised if there are better (faster + less expensive) solutions for rendering animations.

  • benstraub replied

    Hello, I'm a professional developer, and I've run and used Kubernetes clusters. It can do what you want, but it doesn't quite seem like the right tool for the job.

    What you really want here is for Blender to have full use of an entire machine, preferably with a beefy GPU to throw at renders. Kubernetes can do this for you, using something called a DaemonSet, and especially if you're managing your nodes using something like an auto-scaling group, you can have a render farm that gets large when it needs to, and can be as small as one machine when you don't. (Keep in mind that EC2 instances are virtual machines, and don't get full use of the CPU or GPU.)

    Kubernetes is really good at taking a large number of small jobs and sprinkling them across many machines, but for just one big job per machine there are easier and better ways. Set up a t3.micro as your master, and have an auto-scaling group of t3.medium's with several elastic GPUs each, and a boot image that runs Blender in slave mode and connects to the master. Same benefits, and you don't have to figure out Kubernetes (which is a huge beast, btw).

  • Kent Trammell replied
    Thanks for the insight bbenstraub! 🙇🏻‍♂️
  • lawrenhanson replied

    Thanks, bbenstraub!  I was learning Kubernetes at the time and it is nice to hear the opinion from a fellow Software Engineer who had previous experience with the technology.