Skip to content

feat: support microVM runtime (Firecracker/Cloud Hypervisor) for compute-intensive agent workloads #496

Description

@mengmengmengqiang

Background

The current worker sandbox relies on gVisor (runsc) for container-level isolation. This works well for typical agent tasks, but for users who need heavier computation — GPU workloads, long-running builds, or full OS-level isolation — gVisor's syscall interception overhead becomes a bottleneck and the isolation boundary is insufficient.

Proposal

Add support for microVM-backed worker pods (e.g. Firecracker or Cloud Hypervisor) as an alternative runtimeClassName alongside the existing gVisor option.

# values.yaml
worker:
  runtimeClassName: "kata-fc"  # Kata Containers + Firecracker

Why microVMs

Property gVisor microVM (Firecracker)
Isolation boundary Syscall filter (host kernel shared) Full VM kernel (hardware-level)
Boot time ~ms ~125ms (Firecracker)
Memory overhead Low ~5MB per VM
Compute overhead Moderate (syscall interception) Near-native
GPU passthrough Not supported Supported via vfio

Use cases

  • Agent tasks that require native kernel features (eBPF, FUSE, kernel modules)
  • Compute-intensive workloads where gVisor syscall overhead is measurable
  • Stricter multi-tenant isolation requirements where a shared host kernel is unacceptable
  • GPU-accelerated inference or training inside the worker environment

Implementation notes

  • Kata Containers provides a drop-in RuntimeClass that works with existing K8s pod specs
  • No changes to worker image required — Kata wraps the existing OCI image in a VM
  • The runtimeClassName field in charts/lobu/values.yaml (worker.runtimeClassName) already exists; this would add documentation and tested values for microVM runtimes
  • Node pool with bare-metal or nested-virt support required (e.g. GKE Bare Metal, AWS i3.metal, Hetzner dedicated)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions