Skip to main content

FAQ/Troubleshooting

Cluster auth/info

In order to get access to your Trainy managed GKE cluster, you’ll first need to generate a kubeconfig at~/.kube/config file from GCP. Use the following commands to find the list of your GKE clusters and set your kubeconfig. Make sure to substitute the values for <CLUSTER_NAME> and <COMPUTE_LOCATION> . In the example below, this would have been trainy-cluster and us-central respectively.

Cluster Resources

Every trainy cluster consist of 3-6 small CPU VMs that are always running to run things like observability services as well as our in cluster controller and health monitors. In addition, there are autoscaling pools for the following GPU types
  • A100:8 ✅
  • A100-80GB:8 ✅
  • H100:8 - TCPXO enabled ✅ (1.6Tbps)
  • H200:8 - RDMA enabled 🚧 (in beta)
  • B200:8 - RDMA enabled 🚧 (in beta)
  • RTX-PRO-6000:1 - NVIDIA RTX PRO 6000 Blackwell (g4-standard) ✅
While it’s possible to run a task without a GPU, the autoscaling pools are configured to only accept requests for workloads that require a GPU, leaving only the small CPU instances for running CPU only tasks. As such we recommend lowering the cpu and memory

Submission Flow

First submit a GPU job to your cluster via konduktor launch and view it’s status with kondkutor status
for Trainy on GKE, a few things occur that allow the task to be executed by scaling up the GPU pools.
  1. Task definition is created by the user
  2. Cluster admits Task into Kueue as workload (check with kubectl get workloads)
  3. ProvisioningRequest is sent to GCP and enqueued (check with kubectl get provreq)
  4. ProvisioningRequest is fulfilled and new GPU nodes will be added to fulfill the requests of the submitted user Task
While waiting for a request to be fulfilled, it’s quite usual to see the following ResourcePoolExhausted status message from the ProvisioningRequest especially for large requests for highly in demand SKUs for long periods of time.