Skip to content
Kubermeister
Download
Version 0.4.9 is out

A fast desktop client for Kubernetes

Browse live clusters, follow logs, exec into pods, forward ports, manage Helm releases and drain nodes — from one window on macOS, Windows and Linux. No account, no agent in your cluster, no kubectl required.

Version 0.4.9 · Free and open source · No account required

brew install --cask kubermeister/tap/kubermeister
The Kubermeister cluster summary: node health, cluster CPU and memory usage charts, recent events and alerts.The Kubermeister cluster summary: node health, cluster CPU and memory usage charts, recent events and alerts.

What it does

Everything you actually do with a cluster

Not a dashboard that shows you numbers. The operations you reach for on a bad afternoon, built so they hold up on a busy cluster.

Logs

A console that is already following

Live is on when the tab opens, because a log is opened to see what is happening now and a console you have to switch on first is a step in front of the answer. A controller’s Logs tab follows every pod it owns at once, merged in arrival order and coloured by pod, restarting when the set of pods changes so a replaced pod stops being followed.

  • Search narrows the console by default, or highlights in place when a hit only makes sense beside what surrounds it.
  • An unfinished regular expression reads as “no filter yet” instead of emptying the console mid-keystroke.
  • Tens of thousands of lines cost a screenful of DOM, because only the rows in view are rendered.
Read the documentation
The Kubermeister log console following all three pods of a deployment at once, each pod’s lines coloured.The Kubermeister log console following all three pods of a deployment at once, each pod’s lines coloured.

Rollouts

See what changed before you roll it back

Two revisions of a pod template, side by side, both run through the same canonicalisation the rollback itself uses — keys ordered, blanks dropped, the controller’s own pod-template-hash ignored — so a difference on screen is one somebody made rather than one the API server filled in.

  • A rollback restores the template with a JSON patch, not a strategic merge, so a container added since the target revision does not survive the undo.
  • A revision whose template already matches the live one is reported as skipped rather than written.
  • Pause, resume, scale and restart sit next to the history, and a restart stamps the same annotation kubectl writes.
Read the documentation
Two deployment revisions compared side by side, with the one added environment variable marked.Two deployment revisions compared side by side, with the one added environment variable marked.

Node operations

A drain that tells you what it is doing

The dialog shows the plan before anything happens, and the drain re-derives that same plan itself, so the screen can never promise one thing and the app carry out another. Then it streams: one line per pod, as it goes.

  • Eviction goes through the eviction API, so PodDisruptionBudgets still have a say and a 429 means “not now” rather than “failed”.
  • Stopping ends the drain at once and leaves the node cordoned — undoing that is your decision, not the app’s.
  • Cordon is a patch on spec.unschedulable and nothing else, so it reads the same to every other tool.
Read the documentation
The drain dialog, showing how many pods would be evicted and how many are left alone.The drain dialog, showing how many pods would be evicted and how many are left alone.

Safety

Built so a bad click cannot become an incident

A graphical client makes destructive things easy to reach. These are the constraints that keep that from being a problem.

A write cannot land on the wrong cluster

Every write carries the context the screen was rendered under. The app compares it with the context it is on and refuses a mismatch, so a tab left open from before a context switch can never act on the new cluster.

Destructive kinds ask you to type the name

Deleting a node, a CRD or a namespace takes the object’s name, typed out. Those kinds have no bulk delete at all, because a checkbox column and an irreversible action do not belong on the same screen.

Secrets cross one key at a time

A Secret’s values are never handed to the interface as a map. A reveal asks for the single key it needs, the value is held outside the query cache, it masks itself again on a timer, and a copy never renders it at all.

The app opens no back door

No debug container, no privileged pod on a node, no files carried across the exec channel. kubectl debug and kubectl cp are where those belong, and the app does not quietly become a way around your RBAC.

The renderer is sandboxed and stays that way

Context isolation on, Node integration off, sandbox on, external links routed to your browser and everything else denied. Electron fuses are flipped at package time so the signed app cannot be started as a plain Node binary.

Nothing quits out from under a session

Quitting ends every port forward, shell, log follow and drain at once, and none of them come back — so the app asks first, in a native dialog that names what is about to stop rather than asking in the abstract.

Questions

Frequently asked

What is Kubermeister?

Kubermeister is a desktop Kubernetes client for macOS, Windows and Linux. It reads your existing kubeconfig and gives you a window onto your clusters: live resource lists, logs, shells, port forwards, Helm releases, node drains and rollouts.

Is Kubermeister free?

Yes. It is free and open source, for personal and commercial use alike. There is no account, no licence key, no seat count and no paid tier.

Do I need kubectl installed?

No. Kubermeister talks to the API server directly and runs exec credential plugins itself, so a kubeconfig written by aws eks update-kubeconfig or gcloud works without kubectl on your PATH.

Does Kubermeister install anything into my cluster?

No. It adds no deployment, no service, no agent and no credential. It uses your kubeconfig and your RBAC, so it can do exactly what you can do and nothing more.

Where does my cluster data go?

Nowhere. Kubermeister talks to your API server and to GitHub for update checks. There is no backend, no account and no telemetry service collecting what your clusters contain.

Does it work behind a corporate proxy or with a private certificate authority?

Yes. It reads HTTPS_PROXY and HTTP_PROXY per scheme the way kubectl would, honours a proxy-url in the kubeconfig, and lets you set a proxy, a bypass list or an extra CA bundle in Settings. A CA bundle is added to what is already trusted rather than replacing it.

Can I use it with more than one cluster?

Yes. Every context in your kubeconfig is listed, and switching one resets every cluster query so a screen never shows the previous cluster while writes already reach the new one.

Point it at a cluster and see.

It reads the kubeconfig you already have and changes nothing about it.

Version 0.4.9 · Free and open source · No account required

Prefer to read first? Start with theinstallation guideor browse thesource on GitHub.