Understand Kubernetes - the visual way. Not yet another attempt to manage production clusters in the browser.
k'exp is for:
- Learning and exploring Kubernetes capabilities
- Application development (object graph presets for every app)
- Controller and operator development (dynamic object graphs)
- [coming soon] Postman-like client and request builder for Kubernetes API
k'exp can reflect the state of your cluster in real-time:
k'exp can also give you a quick overview of "related" objects:
...as well as show object-specific insights:
You can try k'exp at every Kubernetes Playground on iximiuz Labs. Some tutorials also use k'exp to visualize Kubernetes objects and their relationships:
You can also find a few short demos on YouTube.
Grab the latest release from GitHub:
GOOS=linux
GOARCH=amd64
curl -Ls https://github.com/iximiuz/kexp/releases/latest/download/kexp_${GOOS}_${GOARCH}.tar.gz | tar xvz
sudo mv kexp /usr/local/binAt the moment, the only system kexp is actively tested on is Linux amd64,
but builds for Darwin amd64/arm64 and Linux arm64 are also available.
It's a statically linked Go binary with an embedded UI.
If you already have kubectl configured to access your cluster(s),
you can run kexp too - it uses the same KUBECONFIG discovery logic.
By default, kexp starts a server on localhost:5173:
kexp
open localhost:5173Alternatively, you can specify a custom address:
kexp --host 0.0.0.0 --port 8090kexp is a daemon that uses the local KUBECONFIG to access Kubernetes API.
Thus, it's as powerful (and potentially destructive!) as your kubectl can get.
The daemon lists Kubernetes API resources and objects,
may start a bunch of watchers for the objects of interest,
and even delete objects if you ask it to (via the UI).
The UI is a single-page application written in TypeScript and Vue and embedded into the daemon binary.
Pre-requisites:
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
cd ui
npm install
# Optional
kind create cluster
# ...or
minikube startRunning the dev server and the UI is easy:
# In terminal 1
make back-run-dev
# In terminal 2
make front-run-devAfter that, you can access the UI at http://localhost:5173.
Contributions are welcome!


