Skip to content

Topology

Blender in a Kubernetes Cluster

The Blender Render Cluster is a project centred around running Blender in a small kubernetes cluster on COTS hardware. The cluster provides a reslient and scalable compute platform. The cluster scales up as the Blender Projects are scheduled with the help of a Blender project called Flamenco.

Starting Point

This project, by default, builds a kubernetes cluster and deploys one version of Blender and Flamenco on across all nodes.

More Advanced Use Case

This project can be used to provide an abstraction of compute/rendering hardware, different blender versions, that can scale for different users and workflows by using kubernetes deployments.

The diagram below shows just one possible configuration where

  1. Blender, Flamenco releases are divided up into typical Testing, Dev and Production Deploymnents.
  2. Two teams (Cycles and Eevee) use Flamenco Worker Tags (FWTs) within Production environment.
  3. Some workstations outside of the k8s cluster also participate in the Flamenco rendering.

Components

Using kubernetes it is possible to launch Flamenco Manager and a set of Workers inside the cluster that scale to meet the demands of any Flamenco Jobs dispatched by Blender DA/Artists from their workstations using the Flamenco Blender Add-On.

How to setup this up is described in detail under the setup and use cases section of this documentation.

Below is a simplified diagram of the k8s components used to deploy Flamenco Workers and share an external NFS file store.

Blender

This is 3D animation software a copy of which is to be installed on each workstation that runs a Flamenco Worker.

Flamenco

Flamenco is an open-source application responsible for receiving Blender project files and dispatching them as render jobs across registered Flamenco Workers. These workers expect Blender to be installed on the worker nodes.

The DA/Artists using Blender will interact with the Flamenco Manager GUI and Flamenco Add-On to submit rendering jobs that are then published on a shared NFS File Server.

Gateway Device

This is a node that is providing isolated and essential eco-system services for the Cluster. The Gateway Device also provides traffic routing between the Home LAN and the Cluster Network. (more details)

Kubernetes Cluster

The running of the kubernetes cluster and associated hardware is a domain unto itself. DA/Artists are unlikely to interact with this system but it may need some support by IT/Infrastructure personel who can ensure compute nodes are registered, healthy and expose underlying GPU hardware correctly.

k8s Control Plane Node

The Control Plane node by default doesn’t do any rendering. Therefore it should be a reliable but not necessarily powerful node.

k8s Worker Nodes

These should be powerful enough to run Blender jobs, typically rendering a small range of frames as Flamenco tasks.

The following diagram is an approximation and the cluster may have more or less nodes.

Software Stacks

There are a handful of specific k8s charts used to support running Blender in a cluster. Notably, the GPU support using the Intel Device Driver Plugin.

Prometheus for monitoring has been added but is not necessary to run the render farm. The local Self-Signed Docker Registry holds the specific versions of Blender and Blender Flamenco in a custom container.

Learn the lingo

This documentation comes with a page devoted to Terminology to help demystify networking, kubenernetes and blender terminology.