Skip to content

Kube32

Kube32 is a Kubernetes-compatible control plane and WebAssembly pod runtime for ESP32-S3 microcontrollers, written in C++17. One firmware image runs on every board, and the same sources build kube32-sim, a host simulator for macOS and Linux. A board with PSRAM runs the control plane, including the API server, scheduler, controllers, journaled object store, and Ingress controller. Every board runs a kubelet that executes pods as WebAssembly modules in the wasm3 interpreter, with access to storage and hardware peripherals granted per pod.

flowchart LR
    kubectl["kubectl / k9s"] -->|":6443"| cp["Control plane board<br/>API server, scheduler, controllers,<br/>object store, Ingress, kubelet"]
    browser["Browser"] -->|":80 Ingress"| cp
    cp <-->|"HTTP / ESP-NOW / UDP"| w1["Worker board<br/>kubelet + wasm3 pods"]
    cp <-->|"HTTP / ESP-NOW / UDP"| w2["Worker board<br/>kubelet + wasm3 pods"]

Where to start

Topic Page
Run the simulator or boot a two-board cluster Quick start
Supported boards, memory layout, and pin capacities Hardware specification
Flash firmware and configure nodes over USB serial Flashing and the serial console
Configure kubectl, k9s, TLS, and bearer tokens Cluster access
Build and package WebAssembly pods in C, Rust, or AssemblyScript Writing app pods
Services, Ingress routing, pod-to-pod HTTP, and event topics Networking and Ingress
Control plane journal, persistent volumes, and node storage Storage and persistence
Claim GPIO, I2C, UART, ADC, display, keypad, and speaker resources Peripherals and capabilities
Four-pod issue tracker running across a devkit and Cardputer Tessera example
Control plane, kubelet, and runtime internals Architecture overview
Supported Kubernetes API resources, subresources, and semantics Kubernetes API reference
kube32-cli, kube32-sim, and serial console commands CLI and serial reference