Port Forwarding
Expose a cluster service on your local machine — same as kubectl port-forward, but with a GUI, auto-reconnect, and concurrent WebSocket handling.
Start a port forward
Right-click any of these and choose Port Forward:
- Pod
- Service
- Deployment
- StatefulSet
- DaemonSet
A dialog opens.
The dialog
- Port presets — a row of clickable chips for each port the resource exposes (from its YAML). Clicking a preset fills the Remote port field.
- Local port — free text, digits only. Type the port you want on your machine.
- Remote port — free text, digits only. Populated from a preset click, or typed directly.
Click Start.
Active port forwards
Running forwards appear as rows in the toolbar just below the main toolbar:
[▶ my-service :8080 → pod:80 Mounted] [Open] [Stop]
- Status —
Connecting→Mounting→Mounted. - Open in browser — launches
http://localhost:<local_port>in your default browser. - Stop — closes the forward and frees the local port.
- Error row — if the forward fails, a warning icon + message appears below it. Errors auto-clear on the next successful connection.
Multiple simultaneous forwards
Unlimited forwards can run concurrently — each gets its own row. WebSocket connections are handled in parallel, so opening many browser tabs against a forward doesn't block.
SSH-tunneled clusters
For kubeconfigs routed through an SSH tunnel, each incoming local HTTP request needs an SSH direct-tcpip channel (about 300–500ms to set up). Kubezilla:
- Opens SSH channels concurrently via session multiplexing — no serialized queue.
- Caches the
Api<Pod>behind anArc<Mutex>to avoid rebuilding clients per connection. - Applies a 10-second WebSocket timeout — on timeout, the connection is torn down and the next request rebuilds the kube client with a fresh SSH channel.
- Calls
Portforwarder::join()after every connection for clean WebSocket teardown.
In practice: if your bastion is slow, the first browser hit takes ~400ms; subsequent hits on the same forward are fast.
Tips
- Port already in use? — pick a different local port.
- Forward stays
Connectingforever? — the pod/service is probably not listening on the remote port. Check the pod's Info tab → Containers → Ports. - Connection resets randomly? — the backing pod died or was rescheduled. Stop and restart the forward.
- Want the URL? — the Open button uses
http://; forhttps://services, copy the URL from the row and change the scheme manually.