Skip to main content
This guide installs Rental Operator in a Kubernetes cluster, rents one GPU, connects to it over SSH, and releases it.

Prerequisites

Kubernetes 1.35 to 1.37

A cluster you can reach with kubectl. A local kind cluster works.

Helm 3

To install the chart from the GitHub container registry.

An API key

Create one under Settings > API Keys in the dashboard.

An SSH key pair

Its public key is saved on your account so you can reach the rental.
Your balance must cover at least one hour of runtime across all your instances, including the new rental. See Pricing.
A local cluster still rents real GPUs, billed to your account. Delete your GPURentals before you delete the cluster or uninstall the operator. Otherwise nothing is left to end them, and they keep billing until you terminate them in the dashboard.

Rent your first GPU

1

Install the operator

To limit the operator to some namespaces, use the namespaced install.
2

Store your API key

In the namespace where your rentals will live, create a Secret and label it. The operator uses only Secrets with that label. read -rs waits for you to paste the key, without echoing it or saving it in your shell history.
3

Create a ProviderConfig

Save this as providerconfig.yaml:
Apply it and check that the key works:
READY shows True once Hyperbolic accepts the key, and BALANCE shows your balance in cents.
4

Save your SSH public key

Change the path if your public key isn’t ~/.ssh/id_ed25519.pub. If your account already has this key, the SSHKey uses it and never deletes it.
5

Rent a GPU

Save this as gpurental.yaml, with the GPU type and count you need:
Apply it and watch it start:
The phase moves from Provisioning to Running.
6

Connect over SSH

It prints the address as user@host:port, for example root@203.0.113.10:22. Connect with the port passed to ssh:
7

Release the GPU

The resource stays in Terminating until Hyperbolic confirms the rental is gone, then disappears.

Common issues

kubectl get gpurental my-first-rental -o wide adds a REASON column that says why a rental is waiting. For the ProviderConfig, kubectl describe providerconfig default shows the reason under Conditions.
The Secret is missing its label. Run the kubectl label command from step 2.
Hyperbolic rejected the key. Create a new key in the dashboard and update the Secret.
The SSHKey it names doesn’t exist or isn’t saved on your account yet. Check that kubectl get sshkey me shows READY as True, or complete step 4.
Your balance doesn’t cover about an hour of runtime across your instances and this rental, so nothing was created. Add credits or turn on Auto Top-Up. The operator checks again every five minutes.
No capacity matches the GPU type and count right now, or the type isn’t in the catalog. The operator checks again every five minutes. To try another type or count, or to drop region so any region works, delete the GPURental and apply a new one. Those fields can’t change in place.

Next steps

Rental Operator overview

How it works, its limits, and the full reference.

Common operations

Regions, ports, terminating, orphaning and rebooting.