Getting Started with Kubernetes
Deploy and connect to your first Hyperstack Kubernetes cluster. Follow the steps below to configure the cluster, deploy it, and connect with kubectl.
Before you begin
You'll need:
- A Hyperstack account: create an account or sign in using email or SSO.
- Your account billing activated.
- Credit added to your account.
- kubectl installed on your local machine.
Deploy and connect to a cluster
-
Open the Deploy a New Cluster page
On the Kubernetes page, click Deploy a New Cluster.
-
Choose a worker flavor
The flavor determines the GPU, CPU, RAM, and storage of the cluster's worker nodes, which run your workloads. In the Choose default worker flavor section, select 1x L40. It's a good fit for a first cluster, and it may already be selected. See all available flavors.
-
Create an environment
In the Environment section, click Create New Environment, give it a name, choose the CANADA-1 or NORWAY-1 region, and confirm. An environment groups your cluster, SSH keys, and other resources together. Environments that aren't compatible with your flavor are marked in the list. See Environments for details.
-
Create an SSH key
An SSH key is required to deploy, and it's scoped to a single environment, so create one for the environment you just made. In the Select SSH Key section, click Create New SSH Key, then choose how to add your key:
- Generate a new key
- Use an existing key
Select the Generate SSH key tab, choose the environment you created, enter a name, and click Generate. Hyperstack creates an RSA key pair for you. Save the private key somewhere safe.
Select the Import SSH key tab, choose the environment you created, paste the contents of your existing public key (
.pub) file, give it a name, and click Import.You connect to the cluster with
kubectland a kubeconfig file, not with this key. The key is used for SSH access to the cluster's individual nodes. -
Keep the remaining defaults
The rest of the form is already set up for a standard cluster, so you can leave every section as it is:
- Select Kubernetes Version: the newest version is pre-selected.
- Number of Master Nodes:
3. These run the control plane and are currently offered for free. - Number of default Worker Nodes:
1. - Select Firewalls: optional, and none are needed to get started.
- Select Deployment Mode: Full, which adds a bastion node and a load balancer. See Cluster Deployment Modes.
- Select Master Node Flavor:
n1-cpu-small. - Cluster Name: auto-generated, such as
virgo-helium. Customize it if needed.
-
Deploy
Check the Final Configuration and Price Breakdown, then click Deploy. Hyperstack opens the cluster's Overview tab, where the status starts at
CREATING.The cluster moves through
CREATINGwhile its virtual machines are provisioned, thenRECONCILINGwhile Kubernetes is installed, and finallyACTIVE.Deployment time and billingCluster creation usually takes around 15 minutes for a cluster this size, and larger clusters take longer. Billing starts only once the underlying virtual machines are
ACTIVE. Worker nodes and public IP addresses are billed, while master, bastion, and load balancer nodes are not. See Cluster Billing & Data Retention. -
Copy your kubeconfig
The Kubeconfig action stays disabled until the cluster reaches the
ACTIVEstate. Once it does, return to the Kubernetes page, hover over the ⋮ in the ACTIONS column of your cluster, then click Kubeconfig. Hyperstack opens a page showing the cluster's kubeconfig file.Click Copy, then paste the contents into a file named
kubeconfig.yamlon your local machine. -
Connect with kubectl
Point
kubectlat the file you just saved, then list the cluster's nodes:terminalConnect to your clusterexport KUBECONFIG=$PWD/kubeconfig.yaml
kubectl get nodesEach master and worker node reports
Ready:terminalExample outputNAME STATUS ROLES AGE VERSION
virgo-helium-default-0 Ready worker 7m v1.36.1
virgo-helium-master-0 Ready control-plane 8m v1.36.1
virgo-helium-master-1 Ready control-plane 8m v1.36.1
virgo-helium-master-2 Ready control-plane 8m v1.36.1The bastion and load balancer nodes don't appear here. They support the cluster's access and traffic paths rather than running workloads, so they aren't registered as Kubernetes nodes.
Confirm the worker's GPU is available to Kubernetes:
terminalCheck the worker's GPUkubectl get nodes -o custom-columns='NAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu'The worker node advertises one GPU, ready to be requested by a pod:
terminalExample outputNAME GPU
virgo-helium-default-0 1
virgo-helium-master-0 <none>
virgo-helium-master-1 <none>
virgo-helium-master-2 <none>
Schedule a GPU workload on it. The NVIDIA drivers and device plugin are already installed, so a pod that requests nvidia.com/gpu runs on the worker node without any further setup.
Kubernetes clusters do not support hibernation, so they bill until deleted. To reduce cost, remove worker nodes, or delete the cluster from the ⋮ menu on the Kubernetes page when you're finished. See Cluster Billing & Data Retention.
Next steps
Get more out of your Hyperstack Kubernetes cluster:
Clusters via the Console
Scale your cluster, manage node groups, and understand cluster statuses and billing.
Clusters via the API
Create, connect to, scale, and delete clusters programmatically with the REST API.
CSI Driver
Provision persistent volumes so your data survives a node being replaced.
Deploy an LLM with vLLM
Run a large language model on your cluster with the vLLM inference framework.