Skip to content
TopicTracker
From HackerNewsView original
TranslationTranslation

I ported Kubernetes to the browser

ngrok ported Kubernetes to run inside a web browser using WebAssembly, creating a project called Webernetes. The demo allows users to spin up a full Kubernetes cluster with a control plane and worker node entirely client-side, with all components compiled to WASM and running in the browser without any backend servers.

Background

- **Kubernetes (K8s)** is the industry-standard system for deploying and managing containerized applications across clusters of servers. It's notoriously complex to set up, with a heavy control plane that normally runs on dedicated infrastructure. - **WebAssembly (Wasm)** is a low-level binary format that runs in the browser (and increasingly on servers). It allows near-native-speed execution of code written in languages like Go or Rust inside a web page. - **ngrok** is a company best known for a tunneling tool that exposes local servers to the internet; they're expanding into edge compute and developer infrastructure. - The author ported **k3s** (a lightweight, certified Kubernetes distribution by Rancher) to run inside the browser by compiling it to WebAssembly via **TinyGo**. This means the entire Kubernetes control plane — API server, scheduler, controller manager — executes in a browser tab, not on remote servers. - The demo runs a real Kubernetes cluster locally in-browser, complete with a Node.js pod and `kubectl` access, all using **Keyri** for authentication and **ngrok's own cloud API** for ingress.

Related stories