Trainy Hub is in private preview. Ask your organization owner or
Trainy for an invitation and an assigned Hub namespace.
Sign in and select your workspace
Install or upgrade the CLI in the Python environment you use for jobs:kubectl, the Google Cloud CLI (gcloud), and
gke-gcloud-auth-plugin.
Then sign in:
Cluster: line in status identifies your Kubernetes context. Check that
Namespace: matches your Hub namespace. It does not identify the job’s destination
worker cluster.
This guide uses explicit --context values so another tool changing your current
context does not redirect your commands. Put this global option before the command.
If kubernetes.allowed_contexts in ~/.konduktor/config.yaml pins an old worker
context, explicit --context overrides it. Login also warns about that setting.
To choose a different assigned namespace later, run login again:
konduktor login --no-hub-context.
Sign in from a remote VM
Run this on the VM, with its assigned namespace:Check and renew your session
expires describes the cached bearer token, rather than a timer that requires
hourly browser login. When a command needs credentials near or after expiry, the
CLI uses its refresh token to renew the session without a browser. whoami reads
the cache and does not trigger refresh. Token lifetimes depend on the identity
provider. If refresh expires or is revoked, run konduktor login again, using
--no-browser on a remote VM.
List clusters and check readiness
List workers registered in your Hub namespace:REGISTERED, CONNECTED, CONFIGURED, and DISPATCHREADY. A worker ready
for dispatch reports True for these conditions and is not CORDONED. Readiness
does not guarantee free capacity or immediate admission for your resource request.
For condition messages and recent events on a worker, replace the name below with
one from the list:
-A and --all-namespaces go after list. This requests a cluster-wide listing;
it is not a shortcut for listing only your account’s memberships. Tenant-scoped
accounts may receive a permission error.
Adapt your task and submit
Keep your existing task’s image, resource requests, environment, andrun script.
Use the queue assigned by your organization, normally user-queue. Review any
worker-specific node selectors, PVC mounts, host paths, and secret references
before you reuse them. A PVC or path on your old cluster is not copied to another
worker by Hub.
For a first CPU job, save this as hello-hub.yaml:
--detach-run submits without waiting for log streaming.
The CLI prints a generated job ID such as
hello-hub-ab12. Save that full ID for later commands:
View jobs and logs
status lists your jobs in the selected Hub namespace. Use status --all-users
to include other users’ jobs there. logs follows by default; --no-follow prints
available logs and exits. Use --node-rank 1 to read rank 1 of a multi-node job.
Hub reads application logs from workers without switching your kubecontext.
Open the Hub console, select your workspace, and
open a job to inspect its selected worker, scheduling conditions, and admission
checks. The console’s Clusters view shows connection and dispatch readiness.
Your console sign-in is separate from the CLI session.
Make private images and other dependencies available
Create referenced Secrets and ConfigMaps in the Hub job’s namespace, even if they already exist in your old worker cluster’sdefault namespace. Hub does not
import those worker-only objects. This applies to image-pull credentials,
container environment references, and Secret or ConfigMap volumes, including
projected volumes and init-container references.
For a private image, obtain a Docker configuration JSON file with registry
authentication entries. A file containing only a local credential-helper setting
does not supply credentials to Kubernetes. Create the Hub secret from that file:
~/.konduktor/config.yaml and keep your other settings:
resources.image_id to the private image. Before launch, check
that each referenced dependency exists in the Hub namespace:
Diagnose a queued job or empty logs
Start with the job’s conditions and admission checks in the console. For a CLI inspection, list the Hub Workloads, find the one whose owner is your JobSet, and inspect its details:missing source dependencies: Secret/...orConfigMap/...means the source object is missing from the Hub namespace. Create it there, then check admission again. Creating it only in a worker’sdefaultnamespace does not fix this.- An offline worker or a failed mirror can hold dependency sync pending. Check worker readiness and share the condition message with your administrator.
- A dispatched job with no application logs may still be pulling its image or
starting its container. Ask an administrator to inspect the worker pod’s events
for
ErrImagePull,ImagePullBackOff, or missing configuration. Invalid registry credentials require a valid Hub source secret, not another CLI sign-in. - If logs report a missing job in
default, check the context and namespace. Use the same explicit Hub context used for launch and the full generated job ID. - If the console returns 503, refresh and retry. If it persists, share the time, workspace, and job ID with Trainy. If the console says your session ended, sign in again there.