kubectl.
When to use Kubernetes
- You run containerized training or inference and want orchestration, not a single host.
- You want to schedule multiple GPU jobs across your reserved nodes.
- You already have Kubernetes manifests, Helm charts, or operators to deploy.
For a single machine you SSH into, VM access or Bare Metal access is simpler. Choose Kubernetes when you want a cluster.
Prerequisites
- The bid is promoted to a confirmed reservation that is visible in your portfolio.
- Checkout and payment for the reservation are complete.
- You have
kubectlinstalled locally.
Launch the cluster
Open Clusters
From the console, go to Clusters (
/clusters) and start a new cluster, or open your reservation in Portfolio and choose the Kubernetes access mode.Choose Kubernetes and a network mode
Pick Kubernetes, then a network mode:
- Public — the API is reachable over the internet.
- Private — the API is reachable only over your reservation’s WireGuard VPN (nothing is exposed publicly).
Connect with kubeconfig
Download the kubeconfig
On the cluster panel, click Download kubeconfig. It contains a short-lived, namespace-scoped token and the API endpoint.
Cluster-wide commands like
kubectl get nodes and kubectl cluster-info return Forbidden. That is the security boundary working as intended — your token is scoped to your namespace — not a connection failure.Run a GPU smoke test
Your GPU node is dedicated to your reservation, so every pod must select it (nodeSelector), tolerate its reservation taint, and request nvidia.com/gpu. This pod runs nvidia-smi and cleans up after itself:
nvidia-smi table. Apply the same nodeSelector, tolerations, and nvidia.com/gpu request to your real workloads.
Private clusters: bring up WireGuard first
Private clusters expose nothing publicly — the API is reachable only over your reservation’s WireGuard tunnel. Set it up once:Tear down
Tearing down drains all workers, revokes the kubeconfig, and returns the GPU nodes to your reservation. A torn-down or failed cluster relaunches in place.Troubleshooting
`kubectl get nodes` is Forbidden
`kubectl get nodes` is Forbidden
Expected. Your token is namespace-scoped, so cluster-wide reads (
get nodes, cluster-info, other namespaces) are denied by design. Use namespace-scoped commands like kubectl get pods.Commands return Unauthorized
Commands return Unauthorized
My pod is stuck Pending
My pod is stuck Pending
The node is dedicated to your reservation. Confirm the pod has the
nodeSelector, the matching ornn.ai/reservation toleration, and a nvidia.com/gpu request, as shown in the smoke test.A private cluster won't connect
A private cluster won't connect
Make sure the WireGuard tunnel is up (
sudo wg show) before using the kubeconfig. Re-generate the peer config from the Connect section if your public key changed.What’s next

Slurm access
Prefer batch scheduling? Run a managed Slurm cluster on your reserved GPUs instead.

Access overview
Compare the ways to access your reserved Ornn compute.

