webernetes logo

webernetes

Kubernetes in the browser.

Developer ToolsTypeScriptApache-2.0 1.0k 59Health 87
GitHub

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

Browser‑based Kubernetes simulation without a backend
Supports Pods, Services (ClusterIP & NodePort), Deployments, ReplicaSets, Events, Namespaces, EndpointSlices
Custom image definition via TypeScript BaseImage class
HTTP and DNS communication between Pods
Round‑robin load balancing for Services
Built with TypeScript and Apache‑2.0 licensed
Open‑source and easy to embed in demos

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.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for webernetes

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
webernetes | MushyBook