Kubernetes Ported to Browser as Webernetes
Original: I ported Kubernetes to the browser
Why This Matters
Demonstrates feasibility of running Kubernetes concepts in browsers, enabling educational and development tools without cloud infrastructure dependencies.
ngrok Senior Developer Educator Sam Rose released webernetes, a TypeScript port of Kubernetes enabling cluster operation in web browsers. The project spans 100,000 lines of code across 629 files, completed in 2 months, supporting pod lifecycles, DNS, networking, and deployments at 140KiB gzipped.
Sam Rose announced webernetes, a partial port of Kubernetes to TypeScript that enables running Kubernetes clusters entirely within web browsers. The project involved generating approximately 100,000 lines of code across 552 commits in 629 files over a two-month development period. Rather than compiling Kubernetes to WebAssembly (which would result in megabytes of data due to system-level API dependencies), webernetes is a selective reimplementation including a partial kubelet port, multiple Kubernetes controllers (pod scheduler, namespace controller, kube-proxy, deployment controller), a browser-based container network interface, and a browser-based container runtime. The implementation supports pod lifecycles, cluster DNS and networking, container garbage collection, IP allocation, and Deployment and ReplicaSet tracking. The final package size is approximately 140KiB gzipped. Instead of pulling real container images from registries like Docker Hub, webernetes uses a browser-based registry where images are defined via TypeScript API. An interactive demo shows HTTP requests moving between pods in a simulated three-node cluster running entirely in the browser.