Gthulhu: Cloud-Native Workload Orchestration with eBPF and Custom Scheduling



Overview
Gthulhu is a cloud-native workload orchestration platform that provides granular, pod-level scheduling observability and automated scaling for Kubernetes workloads. Through an intuitive web GUI, users can select workloads running on Kubernetes, monitor fine-grained scheduling metrics collected via eBPF, and configure automatic scaling policies powered by KEDA — all without modifying the kernel or application code. For clusters running Linux 6.12+ with sched_ext, Gthulhu further supports defining scheduling strategies and distributing scheduling intents to each node, enabling kernel-level custom CPU scheduling across the cluster.

Please visit https://youtu.be/Cyjrh9cW1a8 for a demo video showcasing Gthulhu's capabilities.
Key Capabilities
- Pod-Level Scheduling Metrics — Gthulhu uses eBPF to hook into kernel scheduling events (
fentry/fexit), collecting per-process metrics such as voluntary/involuntary context switches, CPU time, wait time, run count, and CPU migrations. These metrics are aggregated at the pod level and exposed via REST APIs.
- Declarative Configuration — Users define which workloads to monitor using Kubernetes label selectors and namespaces, either through the web GUI or the
PodSchedulingMetrics CRD.
- KEDA Auto-Scaling Integration — Gthulhu provides out-of-the-box integration with KEDA, enabling auto-scaling decisions driven by real scheduling behavior rather than generic resource utilization.
- Advanced: Scheduling Strategies & Intents (requires Linux 6.12+ with
sched_ext) — Users can define scheduling strategies (priority, time-slice, CPU affinity) for specific workloads via the web GUI or REST API. The Manager converts strategies into scheduling intents and distributes them to Decision Makers on each node, enabling cross-node coordinated scheduling policy enforcement.
- Advanced: Custom CPU Scheduling (requires Linux 6.12+ with
sched_ext) — On nodes running a supported kernel, Gthulhu attaches a custom eBPF-based CPU scheduler through the sched_ext mechanism, applying the scheduling intents at the kernel level — including priority-based dispatching, dynamic time-slice tuning, and preemption control — without modifying the kernel itself.
Why Gthulhu?