|
| 1 | +--- |
| 2 | +title: Propeller vs KubeEdge |
| 3 | +description: "Propeller vs KubeEdge: a technical comparison of WebAssembly orchestration vs Kubernetes-based edge computing. Runtime model, device support, protocols, and use-case fit." |
| 4 | +--- |
| 5 | + |
| 6 | +Propeller and KubeEdge both address edge compute orchestration, but they solve different problems with different trade-offs. This page compares them on the dimensions that matter most for infrastructure decisions. |
| 7 | + |
| 8 | +## Quick Comparison |
| 9 | + |
| 10 | +| | **Propeller** | **KubeEdge** | |
| 11 | +|---|---|---| |
| 12 | +| **Workload runtime** | WebAssembly (Wasmtime, WAMR) | Containers (containerd, Docker) | |
| 13 | +| **Control plane** | Propeller Manager (Go REST API) | Kubernetes API server + EdgeCore | |
| 14 | +| **Minimum device RAM** | 128 KB (Zephyr RTOS) | ~256 MB (Linux required) | |
| 15 | +| **OS requirement** | Linux, Zephyr RTOS | Linux only | |
| 16 | +| **Cold-start** | < 1 ms (Wasm) | ~180–250 ms (container) | |
| 17 | +| **Communication protocol** | MQTT, CoAP, WebSocket | WebSocket (EdgeHub) | |
| 18 | +| **Sandbox model** | Wasm linear memory isolation | Linux namespace + cgroup | |
| 19 | +| **Kubernetes dependency** | None | Required | |
| 20 | +| **License** | Apache 2.0 | Apache 2.0 | |
| 21 | +| **Governance** | Abstract Machines (EU-funded) | CNCF Incubating | |
| 22 | + |
| 23 | +## Runtime Model |
| 24 | + |
| 25 | +**KubeEdge** extends Kubernetes to edge nodes. Each edge node runs `EdgeCore`, a lightweight Kubernetes node agent that manages container lifecycle via containerd or Docker. Workloads are standard OCI container images. This means any existing Kubernetes workload can be moved to the edge without rewriting, but the minimum viable edge device must run a full Linux environment with containerd installed — typically 256 MB RAM minimum in practice. |
| 26 | + |
| 27 | +**Propeller** uses WebAssembly as the workload format. Wasm binaries are architecture-neutral: the same `.wasm` file runs on x86_64, ARM64, and the Xtensa LX7 core of an ESP32-S3 microcontroller. This single-binary portability is not possible with OCI containers, which are architecture-specific. The trade-off is that applications must be compiled to Wasm — existing container workloads cannot be moved to Propeller without recompilation. |
| 28 | + |
| 29 | +## Device Reach |
| 30 | + |
| 31 | +KubeEdge's architecture stops at the Linux boundary. Any device that cannot run a Linux kernel with containerd is outside its scope. |
| 32 | + |
| 33 | +Propeller extends below Linux to bare-metal microcontrollers. The Embedded Proplet firmware runs on Zephyr RTOS devices using WAMR's interpreter or AOT mode, enabling Wasm workload deployment to devices with 128 KB of RAM — the class of hardware used in industrial sensors, actuators, and environmental monitors that make up the majority of IoT endpoint count. |
| 34 | + |
| 35 | +## Security Model |
| 36 | + |
| 37 | +KubeEdge inherits the Kubernetes security model: namespaces, RBAC, network policies, and optional Pod Security Admission. Container isolation is enforced by Linux namespaces and cgroups. A kernel vulnerability can potentially escape the sandbox. |
| 38 | + |
| 39 | +Propeller's sandbox is the WebAssembly execution model itself. Wasm modules operate in a linear memory region with no access to host memory or syscalls beyond the explicit WASI imports granted at instantiation. This makes the sandbox boundary a language-level guarantee rather than a kernel-level enforcement, which is particularly relevant for Trusted Execution Environment (TEE) deployments. |
| 40 | + |
| 41 | +## When to Choose Each |
| 42 | + |
| 43 | +**Choose KubeEdge if:** |
| 44 | +- You have existing Kubernetes workloads to move to the edge |
| 45 | +- Your edge devices run Linux with at least 512 MB RAM |
| 46 | +- Your team has existing Kubernetes operational expertise |
| 47 | +- Container-based packaging is a hard requirement |
| 48 | + |
| 49 | +**Choose Propeller if:** |
| 50 | +- You need to deploy to microcontrollers (< 1 MB RAM) |
| 51 | +- Cold-start latency below 5 ms is a requirement |
| 52 | +- You need a single binary to run across x86, ARM, and embedded targets |
| 53 | +- You require hardware-level sandbox guarantees (TEE support) |
| 54 | +- You are starting fresh without an existing Kubernetes investment |
| 55 | + |
| 56 | +## Summary |
| 57 | + |
| 58 | +KubeEdge is the right choice when Kubernetes compatibility and container ecosystem reuse are the primary goals and edge devices are Linux-capable. Propeller is the right choice when the workload needs to reach below the Linux boundary, when cold-start performance matters at the millisecond scale, or when WebAssembly's portability and sandbox guarantees are architectural requirements. The two tools are complementary: Propeller can run alongside a Kubernetes cluster, handling the sub-Linux tier while KubeEdge handles the Linux edge tier. |
0 commit comments