Skip to main content

Kubernetes web terminal, shell and exec

Every Cloider cluster comes with a terminal that has kubectl and helm installed and already pointed at the cluster. You can use it three ways: in the browser from the dashboard, as an interactive shell with cloider cluster shell, or to run single commands with cloider cluster exec, which is what scripts, CI jobs and AI agents use. None of them needs a kubeconfig on your machine.

At a glance​

Browser terminalcloider cluster shellcloider cluster exec
WhereDashboard, Kubernetes, TerminalYour terminalYour terminal, scripts, CI, MCP
InteractiveYes, up to 4 tabsYesNo, one command per call
Toolskubectl, helmkubectl, helmkubectl, helm
OutputA terminal screenA terminal screenstdout and stderr kept apart, the command's exit code, or JSON
Who can use itMembers who can open the dashboardRead & Write API tokensRead & Write API tokens, members with write access
Cluster statusReadyReadyReady

How the terminal works​

When a cluster is created, Cloider deploys a small terminal Deployment into the cluster's kube-system namespace. Its pod holds the cluster's kubeconfig, so kubectl and helm inside it talk to your cluster's API as cluster admin. The browser terminal, cloider cluster shell and cloider cluster exec all run in that pod.

A few consequences are worth knowing:

  • Don't delete or scale down the terminal Deployment in kube-system. If it is gone, the browser terminal and exec stop working with This cluster's terminal isn't running right now!.
  • The terminal's filesystem is temporary. Files you create in it are lost whenever its pod restarts, for example when the cluster is paused and resumed. Keep manifests in git or on your computer, and pipe them in with exec -i.
  • It runs in your cluster, so its CPU and memory use is counted in the cluster's compute like any other pod. When idle it uses very little.
  • It needs the cluster to be Ready. While a cluster is creating, paused or being deleted, the terminal isn't available.

Open the browser terminal​

  1. Open Kubernetes in the sidebar.
  2. Click the cluster's name, or click the actions button (the three dots) on its row and then Terminal.
  3. A terminal tab called Terminal 1 opens, connected to the cluster. Type kubectl get pods -A.
The browser terminal of the staging cluster showing the output of kubectl get pods across all namespaces, with a Terminal 1 tab and a plus button for a new tab
The browser terminal, with kubectl and helm already connected to the cluster.
  • Click + in the tab bar to open another terminal, up to 4 at a time. Each tab is its own shell session, and switching tabs keeps every session alive.
  • Close a tab with its x. When every tab is closed, click Open a terminal to start a new one.

The cluster name is only a link, and Terminal is only enabled, while the cluster is Ready.

Run a single command with exec​

cloider cluster exec runs one command in the cluster's terminal and exits with that command's exit code. Its stdout and stderr stay separate, so it behaves like running the command locally. This is the easiest way to use kubectl in a CI job or from an AI agent without handling a kubeconfig.

The dashboard runs commands interactively in the browser terminal. For one-off commands from scripts, use the CLI, API or MCP tabs.

Examples​

Apply a whole directory of manifests from your computer:

cat k8s/*.yaml | cloider cluster exec -i staging -- kubectl apply -f -

Watch a rollout finish in CI, failing the job if it doesn't within 5 minutes:

cloider cluster exec --timeout 6m staging -- kubectl rollout status deploy/web -n shop --timeout=5m

Install a Helm chart without a local Helm:

cloider cluster exec staging "helm repo add podinfo https://stefanprodan.github.io/podinfo && helm upgrade --install podinfo podinfo/podinfo -n demo --create-namespace"

Read a Secret's value:

cloider cluster exec staging "kubectl get secret web-secrets -n shop -o jsonpath='{.data.DATABASE_URL}' | base64 -d"

Check what a pod's containers use right now:

cloider cluster exec staging kubectl top pods -n shop

Who can use the terminal and exec?​

  • Dashboard members can open the browser terminal for any Ready cluster of the account.
  • API tokens need the Read & Write permission for shell, exec and the terminal URL. With a Read token, the API answers HTTP 403 and the CLI exits with code 5.
  • Members with read-only access can't run commands with exec: the API answers You have read-only access to this account, you can not run commands!.

See Access control and API tokens.

Troubleshooting​

MessageCause and fix
This cluster is paused. Resume it to run a command! (HTTP 409)Resume the cluster first
This cluster is not ready yet! (HTTP 409)The cluster is still being created. Wait for Ready
This cluster is being deleted! (HTTP 409)The cluster is being deleted, nothing can run in it
This cluster's terminal isn't running right now! (HTTP 409)The terminal pod in kube-system isn't running. If you scaled the terminal Deployment down, scale it back up with your kubeconfig (kubectl scale deployment terminal -n kube-system --replicas 1). If you deleted it, contact support
The command could not be started, try again in a moment! (HTTP 503)A temporary problem starting the command. Retry
Give a command to run!The request had no command. With the CLI, put the command after the cluster name
stdin is bigger than 2 MiB!Split the input, or apply manifests in several calls
The timeout can be an hour at most!Use a timeout of at most 3600 seconds (--timeout 1h)
Terminals need a Read & Write API token! (HTTP 403)Use a Read & Write token. See API tokens
the connection dropped before the command finished, it may still be runningThe connection to the API broke. Like kubectl exec, the command may still be running in the cluster. Check its effect before running it again
The browser terminal stays blankReload the page. If the cluster was just resumed, wait until it is Ready. Check that your network and browser extensions allow WebSocket connections

More cases are in Kubernetes troubleshooting.

Next steps​

Frequently asked questions

Can I use kubectl on Cloider without installing anything?

Yes. Every Cloider cluster has a browser terminal with kubectl and helm already connected to the cluster. Open Kubernetes in the dashboard and click the cluster name, or use cloider cluster shell from your own terminal.

What is the difference between cloider cluster shell and cloider cluster exec?

cloider cluster shell opens an interactive terminal session. cloider cluster exec runs one command, keeps stdout and stderr separate and exits with the command's exit code, which is what scripts, CI jobs and AI agents need.

Which tools are installed in the Cloider cluster terminal?

kubectl and helm, both already configured for the cluster with cluster admin access.

Are files saved in the cluster terminal?

Not permanently. The terminal runs as a pod in the cluster with no persistent storage, so files are lost when the pod restarts, for example after the cluster is paused and resumed.

How long can a cloider cluster exec command run?

Up to one hour. The default timeout is 10 minutes; change it with --timeout, up to 1h. A command stopped by the timeout exits with code 124.