Shell, debug & node shell¶
When logs aren't enough, get a real terminal. Kubus gives you three kinds of shell, each opening as a tab in the bottom dock — a full xterm.js terminal with colours, cursor control and automatic resize.
Container shell¶
Open a shell into any container:
- Pod ⋮ menu → Shell, or Ctrl+K → find the pod → Tab → Shell.
Kubus runs the Kubernetes exec API over a WebSocket. By default it tries bash and
falls back to sh, so it works on minimal images too. The terminal resizes with the
pane, and the session ends cleanly when you close the tab (Ctrl+W / Cmd+W on the desktop app).
You can change the default shell (or set a custom path) in Settings → Logs & terminal.
Debug containers¶
Some images have no shell at all — distroless, scratch, a stripped Go binary. For those, attach an ephemeral debug container:
-
Pod ⋮ menu → Debug container…
-
Choose a debug image (default
busybox:1.36). - Optionally pick a target container to share a process namespace with, so you can see and poke at its processes.
- Kubus attaches the ephemeral container and drops you into a shell inside it — the same
idea as
kubectl debug.
Requirements & lifetime
Ephemeral containers need Kubernetes ≥ 1.23. Once added, a debug container stays in the pod's spec until the pod is recreated.
Node shell¶
Need to get onto the host itself — check dmesg, inspect /var/log, run crictl? The
node shell launches a temporary privileged pod and nsenters into the node's root
namespace, giving you a root shell on the machine.
- Node ⋮ menu → Node shell…
This is powerful — and it knows it
The node shell runs a privileged pod with host PID, network and IPC. Kubus warns you before starting one, and on a protected cluster you must type the node name to confirm. The helper pod is deleted when you close the terminal.
See also¶
- Copying files — move files in and out of containers
- Logs — the lighter-weight first look