What is it?
What it is
A browser-based Kubernetes simulator that allows users to run a subset of Kubernetes features without a backend server.
Why it exists
To enable interactive Kubernetes content in the browser with minimal maintenance, as developed by ngrok to demonstrate Kubernetes concepts without infrastructure overhead.
Who should use it
Educators, developers, and learners who want to create or interact with Kubernetes concepts in a browser-based environment without setting up real clusters.
Who should avoid it
Anyone needing production-grade Kubernetes, full API compatibility, real container images, or performance/scale testing.
How it works
A quick walkthrough in plain English
How webernetes works
Step 1 of 3
You interact with it
Open webernetes, send a request, or connect it to your stack.
Features
Advantages
- No infrastructure required – runs entirely in the browser
- Low maintenance and long‑term availability for interactive content
- Fast prototyping of Kubernetes concepts
- TypeScript API for strong typing and developer ergonomics
- Open source community contributions possible
- Supports common Kubernetes objects for educational demos
Disadvantages
- Experimental – API may change
- Limited feature set (no init/ephemeral containers, volumes, affinity, resource limits, gRPC, UDP, LoadBalancer, ExternalName)
- Fixed 3‑node cluster, not configurable
- No real Docker images – only simulated images
- No backend persistence or networking beyond HTTP/DNS
- Events may lack full field accuracy
- Not suitable for production workloads or complex scenarios
Installation
native
npm install @ngrok/webernetes
FAQ
What is Webernetes and why does it exist?
Webernetes is a browser‑based simulation of a Kubernetes cluster. It allows developers to spin up a 3‑node cluster entirely in the browser without any backend infrastructure, making it easier to create long‑lived, interactive Kubernetes content with minimal maintenance.
How do I install and start using Webernetes in my project?
Install the package with `npm install @ngrok/webernetes`. Then create a `Cluster`, register any custom images, initialize the cluster with `await cluster.init()`, and apply Kubernetes manifests using `cluster.apply([...])`. The cluster automatically starts three nodes named `node-1`, `node-2`, and `node-3`.
How do I create a custom container image for use in the cluster?
Extend the `BaseImage` class, set the static `imageName` and `imageVersion`, optionally override `defaultCommand`, and implement the `exec(ctx, argv)` method. Register the image with the cluster via `cluster.registerImage(MyImage)` before initializing the cluster.
Which Kubernetes resources are currently supported in Webernetes?
Supported resources include Namespaces, Pods, Services (ClusterIP and NodePort), EndpointSlices, Events, ReplicaSets, and Deployments with RollingUpdate and Recreate strategies. Nodes are fixed at three, and many advanced features are not yet implemented.
How can I expose a pod’s HTTP endpoint to the browser?
Create a `Service` of type `NodePort` that selects the pod, then use `cluster.fetch('http://node-1:<nodePort>')` to send requests. The pod can also communicate with other pods via DNS names or IP addresses within the cluster.
Featured in Videos
YouTube tutorials and walkthroughs for webernetes
Alternatives
Similar projects ranked by category, topics, and text overlap.