A Tale of Two Plugins Safely Extending the Kubernetes Scheduler with WebAssembly
summary
Kubernetes scheduler gets a WebAssembly-based extension that loads user modules from files or URLs via a Wasmer-like runtime, exposes the scheduling framework ABI, and aims for Go-plugin feature parity without rebuilding the scheduler. Benchmarks show small runtime overhead compared with native Go but much higher latency when garbage collection runs; using tinygo reduces GC spikes but module recreation is costly. The SDK adds lazy loading and caching of pod/node objects to cut transfer costs; usable for many clusters but not a full replacement for Go plugins at very large scale.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 1:06Kubernetes scheduler basics
- 5:02Scheduler extensibility
- 6:25Webhook extensibility
- 8:58Scheduling framework extensibility
- 11:30WebAssembly for scheduler
- 15:52Why WebAssembly
- 16:13WebAssembly extension implementation
- 18:23WebAssembly SDK
- 21:16Object transfer in WebAssembly
- 22:19Lazy loading and caching
- 24:31Garbage collection overhead
- 27:24Benchmarking extensions
- 28:34Summary
- 29:38Future of WebAssembly
related talks
32mA Tale of Two Plugins: Safely Extending the Kubernetes Scheduler with WebAssembly
27mGet WITty: Evolving Kubernetes Scheduling With the WebAssembly Component Model
33mKubernetes on the edge: running low-latency workloads with WebAssembly
23mWhat If... Kubernetes Core Pieces Could Be Extended with Pluggable WebAssembly Modules?
15mWriting Kubectl plugins using WebAssembly
26mWhat If... Kube-Apiserver Could be Extended Via WebAssembly?
31mBuilding Event-Driven WebAssembly on Kubernetes: Runtime, Observability, and…
38mIn the beginning was about metal, now is about Web: exploring WebAssembly in cloud envir.
