Skip to main content

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]
  • StatusConnectingMountingMounted.
  • 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 an Arc<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 Connecting forever? — 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://; for https:// services, copy the URL from the row and change the scheme manually.