Skip to content

Kubernetes Orchestration

Project Implementation

Kubernetes manages the containerized pipeline, orchestrating Blender jobs, Airflow workflows and also hosts this documentation site, made externally accessible using an Ingress controller + Traefik.

Cluster Setup

  • Control Plane: Multi-master setup for high availability
  • Worker Nodes: Future GPU-enabled nodes for Blender rendering. Only a simple node currently.
  • Storage: Persistent volumes for asset sharing and output storage, using SMB/CIFS protocol.

AI-assisted development with VS Code

Key Workloads

The cluster now runs these workloads:

  • Perforce sync jobs for asset retrieval
  • Blender animation creation
  • Hosts this documentation site, exposed at https://homework.everweb.com.br

Storage Solutions

Persistent Volumes

I created a PersistentVolumeClaim (PVC) for Blender assets and for the Blender animation, using SMB storage for shared access across the cluster.

  • Storage Classes: Dynamic provisioning
  • SMB/NFS: Shared storage for assets
  • Local Storage: High-performance workloads, limited by SSD disk speed as the virtual network within Proxmox is NOT a bottleneck.

Volume Management

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: blender-assets-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 100Gi
  storageClassName: smb-storage

Below, some of the Kubernetes cluster management screenshots.

Kubernetes deployment configuration (I had the Portainer agent installed on it as well)

Kubernetes deployment configuration

Cluster overview

Cluster overview

The service that hosts this documentation site

this site

Secrets for the external registry (individual images and secrets for each task of the pipeline) and for SMB storage access

secrets

Persistent Volumes and Claims

Persistent Volumes and Claims

The nodes

the nodes

Improvements planned

  • Proper RBAC
  • Cluster configuration recurring backups
  • Add local DNS names for easier access
  • Monitoring and uptime alerts following the same approach used for other services in the homelab.