KliqueContent HubReference architecturesDownload PDF
Klique AI · Reference architecture

Meta-Scheduler Reference Architecture

This reference architecture covers the following scenario: an enterprise has GPUs in several places, including Kubernetes clusters, HPC clusters, bare-metal servers, public cloud providers and neoclouds. Users and AI agents submit work through common access channels to compute resources named for what they give, such as multi-node training, large tasks or a shared GPU. IT decides through policy where each compute resource runs: one Klique control plane places each task in an environment, where a Klique agent turns it into that environment's own unit of work. Klique also offers clustering services: Slurm on Kubernetes, and K3k, Kubernetes in Kubernetes. The document covers the components, how capacity is shared between groups, and the governance layers Klique adds above the scheduler.

Control plane
One, on-prem, scheduling across every environment
Environments
Kubernetes, Slurm, PBS and LSF, bare metal and VMs, public cloud providers, neoclouds
Hardware
CPUs, and NVIDIA and AMD GPUs, whole or shared
Audience
IT architects and sales engineers

How to read the diagram: numbered badges follow one task from submission to the node that runs it.

Access channelsUI and appsUI workflowsSDK and CLIfrom codeREST APIportals, automationAI agentsover MCPCI/CDpipelinesLLM gatewaymodels for agentstokens as a service,governed the same wayKlique control plane· the meta schedulerCompute resourceswhat users pick: large tasks, a shared GPU…Resource policiesreservation and limit per groupResource profilespool order, set by ITPoolscapacity in each environmentMetering and dashboardsevery environment, one viewClusters as a serviceSlurm on Kubernetes · K3kagents pull work over outbound HTTPSKubernetes clusters· on-prem or managedWorker daemonrenders the podKubernetes schedulerplaces the pod on a nodeGPU and CPU nodesHPC clusters· Slurm, PBS or LSFHPC submitteron the login nodeThe cluster's schedulerplaces the batch jobCompute nodesBare metal and VMs· on-premWorker daemonon each hostThe worker daemonassigns the host's GPUsGPU and CPU hostsPublic cloud providers· the customer's accountAutoscalerapps worker daemonInstances on demandup to a maximum, idle stopCloud instancesNeoclouds· rented GPU capacityWorker daemonin the rented clusterKubernetes or VMsas the provider runs themRented GPUs123456
StepDetailLocationConnection
1SubmitWork arrives through an access channel: the UI and its apps and workflows, the SDK and CLI, the REST API, AI agents over MCP, or a CI/CD pipeline. It goes to a compute resource the user may use, such as one for multi-node training or a shared GPU. The GPU as a Service reference architecture covers each access channel. AI agents get their models from the Klique LLM gateway, covered in the LLM Gateway and Tokenomics reference architecture.Control planeCaller → API, HTTPS
2PolicyThe group's resource policy is checked. Work within the group's reservation goes first, and the group can use idle capacity up to its limit.Control planeNone: a scheduling decision
3ProfileThe compute resource's profile sets the task size and lists pools in order. IT owns that order, so IT decides where the work runs; the task goes to the first pool with free capacity.Control planeNone: a scheduling decision
4PullThe agent in that pool pulls the task over outbound HTTPS: a Klique worker daemon on Kubernetes, bare metal, VMs or a neocloud, the HPC submitter on an HPC login node, or an autoscaler, which first starts an instance in a public cloud account.The pool's environmentAgent → control plane, outbound
5PlaceOn Kubernetes the worker daemon renders a pod and the Kubernetes scheduler places it. On a bare-metal host the worker daemon starts a container on free GPUs. On Slurm, PBS or LSF the HPC submitter on the login node turns the task into a batch job from the batch template, and the cluster's own scheduler places it.The pool's environmentInside the environment
6ReportLogs, metrics and GPU-hours flow back to the control plane and are recorded per user, project and pool.Control planeAgent → control plane, outbound

Business value

01

Two levels of scheduling

Klique is a meta scheduler. Users choose a compute resource by what it gives, for example multi-node training, large tasks or a shared GPU for a session, through whichever access channel suits them. IT decides, through policies and pool order, which pools serve each compute resource. Klique then picks the pool for each task, from the group's policy, the task size and the order of the profile's pools. A Klique agent then hands the work to that environment, where its own scheduler places it. Klique works alongside these schedulers rather than replacing them: a Slurm cluster keeps its partitions and accounting, and a Kubernetes cluster keeps its scheduler.

Klique control planedecides which poolPolicyreservation and limitProfiletask size, pool orderPoolfirst with free capacityThen the task is handed tothat pool's Klique agent, whichpulls it over outbound HTTPS.1 · THE KLIQUE AGENT PREPARES THE WORK2 · ITS OWN SCHEDULER PLACES IT3 · THE WORKLOAD RUNSWorker daemon, in the clusterrenders the pod from a template: GPUlimits or MIG slice, node selectors, volumesKubernetes schedulerbinds the pod to a nodewith free GPUsIn the podthe worker daemon rebuilds the environment,runs the task, streams results backHPC submitter, on the login noderenders the batch script and submits itas the user's own Linux accountSlurm, PBS or LSFallocates nodes in a partition,with its own accountingIn the batch jobthe task runs natively or in a container,results stream backWorker daemon, on the hostpicks free GPUs, starts a container or avirtual environment, caps GPU memoryThe worker daemon itselfno separate scheduler: it assignsthe host's GPUsOn the hostthe same environment rebuild,results stream backAutoscaler, or a worker daemonstarts an instance, up to its maximum, orrenders the pod in a rented clusterThe provider's capacitya new instance, or the cluster'sscheduler and node autoscalerOn the instance or poda worker daemon runs the task;idle instances stop
Klique does more than pass a task on. The control plane picks the pool; the Klique agent in that environment turns the task into the environment's own unit of work; the environment's scheduler places it; and the worker daemon inside the workload runs it and reports back.

The resource manager in the control plane does logical scheduling and accounting: it counts GPUs against pools and policies. The Klique agent in each pool then does the environment-specific work. On Kubernetes the worker daemon renders the pod from a template, with GPU limits or a MIG slice, node selectors and volumes. On an HPC cluster the HPC submitter renders the batch script and submits it as the user's own Linux account. On bare metal the worker daemon picks free GPUs and starts a container or virtual environment. Inside the running workload, the worker daemon rebuilds the task's environment, runs it and streams logs, metrics and results back.

02

Pools, profiles and policies

Administrators describe capacity once, in the Resource Configuration and Resource Policies settings. Users then submit to compute resources and receive what their group's policy allows.

RESOURCE POLICIES · PER GROUPRESOURCE PROFILES · TASK SIZE AND POOL ORDERGPU POOLS · ONE PER ENVIRONMENTResearcha reservation and a limitusers of one identity-provider groupsubmit to the queues it is givenProduct AIa reservation and a limitusers of one identity-provider groupsubmit to the queues it is givenSmall taskson-prem Kubernetes → neocloudLarge tasksHPC cluster → neocloud → public cloudMulti-node trainingHPC cluster → on-prem KubernetesShared GPUon-prem Kubernetes, memory-cappedEach line is a queue: one per policy and profile.On-prem KubernetesGPU pool, ownedHPC clusterGPU pool, ownedNeocloudGPU pool, rentedPublic cloudGPU pool, on demandEach profile lists pools in order. A task goes to the first pool in the list with free capacity for its size.
Policies give groups queues onto profiles; profiles list pools in order. Group names, task sizes and pools are illustrative.
ObjectWhat it isSet by
PoolCapacity in one environment, counted in whole GPUs: a Kubernetes cluster, an HPC cluster or partition, a group of bare-metal hosts, a cloud autoscaler or a neocloud.Administrator
Resource profileA task size, fixed or read from the task, and an ordered list of pools. Within a pool, profiles have an execution priority.Administrator
Resource policyA user group's reservation and limit, and the profiles it may use. Within a profile, policies have a queuing priority.Administrator
Compute resourceThe queue a group submits to, one per policy and profile, named for what it gives, such as multi-node training or a shared GPU. Users pick it; IT decides where it runs.Created when a profile is connected to a policy
Worker daemon or HPC submitterThe agent that pulls tasks for a pool and runs them in its environment.Installed in each environment

Pools are sized in whole GPUs whatever the work. A task on a share of a GPU, or on a MIG slice, counts as that share, so the accounting stays aligned with the hardware.

In the Klique documentation: Resource Management covers policies, profiles and pools; Resource Governance covers reservations, limits and quotas; Governed Compute covers how queues reach each environment; and Klique Orchestrator covers the agent installed in each environment, called the worker daemon here.

03

Reservations and limits across environments

A resource policy gives a group a reservation, the GPUs guaranteed to it, and a limit, the most it can use at once. A group can run past its reservation on idle capacity, up to its limit. When a group below its reservation queues work, that work is placed first, and borrowed work can be preempted to make room; preempted work goes back to the front of its queue. Policies sit above the pools, so a group's reservation holds whichever environment runs its work.

ONE MOMENT · ALL GPU POOLSResearcha reservation and a limitlimitProduct AIa reservation and a limitlimitAnalyticsa reservation and a limitlimitwithin the reservationborrowed: idle capacity, up to the limitreserved, not in use
Guaranteed capacity, and idle capacity borrowed up to a limit. Groups are illustrative.

Reservation

The GPUs a group is guaranteed. Reservations across groups should not exceed the capacity of the pools behind them.

Limit

The most a group can use at once, including borrowed capacity. A profile larger than the limit cannot be connected to the policy.

Execution priority

Within one pool, which profile's work runs first, for example small tasks before large ones.

Queuing priority

Within one profile, which group's work runs first when several groups are waiting.

Task size set by the task

A profile can read the size from a task parameter, so one profile covers tasks of different sizes. A default applies when the task sets none.

04

Every environment, one model

Each environment runs a Klique agent that pulls work for its pool. Clusters as a service sit beside them: Klique can stand up a Slurm cluster on Kubernetes, or a K3k virtual Kubernetes cluster, for a team that wants its own scheduler or API. The agent connects outbound to the control plane, so environments need no inbound ports. On an HPC cluster the compute nodes need outbound HTTPS to the control plane too, not only the login node, because the task's process on each node reports results, logs and metrics home. Adding an environment is the same each time: install the agent, define a pool and connect it to profiles.

EnvironmentKlique componentPlaces the workHow a task runs
Kubernetes, on-premA worker daemon per cluster or namespace, installed with HelmThe Kubernetes schedulerA pod from the compute resource's template, with GPU limits, node selectors and volumes
Slurm, PBS or LSFThe HPC submitter, one per cluster, on the login nodeThe cluster's own scheduler, with its own partitions and accountingA batch job from a template, submitted with sbatch, qsub or bsub; the task runs natively or in a Singularity or Pyxis container
Bare metal and VMsA worker daemon on each hostThe worker daemon, on the host's free GPUsA container in Docker mode, or a virtual environment on the host
Public cloud VMsAn autoscaler, run by the apps worker daemon, in the customer's accountOne instance per task, of the instance type the autoscaler instance setsAn instance started on demand, up to the autoscaler's maximum instances, and stopped after an idle timeout
Managed Kubernetes, neocloudsA worker daemon per clusterThe Kubernetes scheduler, with the cluster autoscaler adding nodesPods, as on any Kubernetes cluster
Slurm on KubernetesA Klique clustering service, launched on a Kubernetes clusterSlurm, running in podsExisting sbatch scripts, with worker pods that scale with demand
K3kA Klique clustering service: Kubernetes in Kubernetes, launched inside a host clusterThe virtual cluster's own Kubernetes API, on the host cluster's nodesA team gets its own Kubernetes cluster and namespaces without its own hardware

How public cloud and managed Kubernetes capacity is added and removed, including VM autoscaling, managed Kubernetes node autoscaling and pool order across on-prem and cloud, is covered in the Cloud Autoscaler reference architecture.

05

Usage patterns

AI work now spans two kinds of scheduler. HPC schedulers were built for tightly coupled work on a shared cluster, with fair-share queues, gang scheduling and placement that follows the network topology. Kubernetes was built for containerised, elastic, long-lived services. Most estates run both, often on the same kind of GPUs, and each kind of work has a natural home.

HPC schedulertightly coupled, long runningRuns wherever capacity is freewhere a meta scheduler does the most goodKubernetescontainerised, elastic, long-lived servicesLarge MPI traininggang scheduling, topology, InfiniBandClassical simulationtightly coupled, fair-share policyMulti-node trainingeither, as Kubernetes closes the gapSingle-node traininggoes where GPUs are freeFine-tuning and data preparationshort, flexible, containerisedModel servingautoscaling, rolling updatesHyperparameter sweepsmany small parallel trialsNotebooks and sessionsinteractive, near the datapulled towards the HPC schedulerpulled towards Kubernetes
Each kind of work has a natural home, and a large band can run anywhere. The middle band is where placing each task well pays most.

The middle band is where a meta scheduler does the most good. Single-node training, fine-tuning and data preparation go to whichever environment has free GPUs, and multi-node training can run on either side as Kubernetes gains the batch features HPC schedulers have long had. On HPC a task runs natively or in a Singularity or Pyxis container, so the same image can run under Slurm and on Kubernetes.

Three ways to bring HPC and Kubernetes together

Kubernetes on Slurma short-lived Kubernetes cluster runs as a Slurm jobSlurmowns the nodes and the policyKubernetesinside one long batch jobthe same GPU nodesReuses fair-share policy; Kubernetes stays short-lived and is hard to scale.Slurm on KubernetesSlurm runs as pods on Kubernetes nodesKubernetesowns the nodesSlurmlogin and worker podsthe same GPU nodesElastic Slurm on demand; suits new clusters more than an existing one.A meta scheduler above bothone way in, policy decides where work runsKliquequeues, policies, poolsSlurm · PBS · LSF | Kuberneteseach keeps its schedulerthe same GPU nodesExisting clusters stay as they are; users submit once.Klique also offers the second: Slurm on Kubernetes, as a clustering service.
The approaches can be combined. Klique is a meta scheduler, and also runs Slurm on Kubernetes as a clustering service.

Where mixed estates break, and how Klique closes the gaps

Data and storage

Data on a parallel filesystem, while Kubernetes expects volumes and object storage, often ends in copies in both worlds. Present the same shared filesystem to every pool; Klique attaches volumes to tasks through templates, so a task finds its data at the same path wherever it runs.

Identity

HPC clusters use Linux accounts and directory services; Kubernetes uses service accounts and RBAC. Klique gives one sign-on and one set of roles for every environment, and on Slurm each batch job can run as the submitting user's own Linux account.

Operations

Two submission paths, two queues and two monitoring stacks double the work for users and administrators. Klique gives one way in, one view of every queue, one dashboard and one ledger across environments.

06

Placement patterns

Pool order is set per profile, not per user. A task goes to the first pool in the order with free capacity for its size.

ONE PROFILE · POOLS IN ORDER1 · On-prem GPU poolowned · used firstfull2 · Neocloud GPU poolrented · used nextfull3 · Public cloud GPU poolon demand · used last, up to a maximumfillingA task goes to the first pool with free capacity for its size. Cloud instances start for queued work and stop when idle.
Pools fill in order. Owned capacity first, rented capacity when it is full.

The patterns below are common starting points; in each line the first item is the compute resource and the rest is the pool order.

Owned capacity first, rented capacity for peaks

Large taskson-prem Kubernetes GPU poolneocloud GPU poolpublic cloud, on demand

Work fills the owned GPUs first. When they are full it goes to the neocloud, then to on-demand cloud instances, up to the autoscaler's maximum instances.

Committed capacity before on-demand

Large tasksreserved cloud GPU poolon-demand cloud GPU pool

Committed hours are billed whether they are used or not, so they come first. On-demand instances start only when the reserved capacity is full.

Multi-node training on HPC or Kubernetes

Multi-node trainingHPC GPU poolon-prem Kubernetes GPU pool

Large distributed tasks go to the HPC cluster first, where its scheduler places all the nodes together, and to multi-node scheduling on Kubernetes when the cluster is busy.

Interactive sessions near the data

Notebook, on a shared GPUon-prem Kubernetes GPU pool

Sessions stay on the pool next to the data and the shared storage, on a memory-capped share of a GPU.

A compute resource per GPU class

Large-memory GPUsGPU pools with that GPU class

Each GPU class gets its own compute resource, so a task asks for the class it needs and lands on any pool that has it.

Data that stays in a region

Regulated projectGPU pools in that region

The project's profiles list only pools in the permitted region, so its work cannot be placed elsewhere. Its output destination is set to storage in that region; by default outputs go to the control plane's file server. Code comes from git or the image, secrets come from vaults and are injected at start, and logs and metrics stream home. The Cloud Autoscaler reference architecture covers where the work lives.

07

GPU sharing on any hardware

A GPU can be shared between tasks in several ways, depending on the hardware and the environment. Shares are counted in the pool like whole GPUs, so a task on a share of a GPU uses that share of the group's reservation.

Whole GPUone taskStatic MIGfixed hardware slicesDynamic MIGslices cut per taskMemory-capped containersmemory capped, compute sharedAMD partitionscompute and memory partitionsrunning a taska fixed slice, idle until a task asks for that sizefree, in one block, for the next task
Dynamic slicing keeps free capacity in one block. Fixed slices wait for tasks of their size.
MethodIsolationWhere
Static MIGHardware slices in a fixed layout; tasks request a sliceNVIDIA GPUs with MIG, on Kubernetes
Dynamic MIGHardware slices created per task; the GPU is repartitioned as demand changesNVIDIA GPUs with MIG, on Kubernetes
Memory-capped containersGPU memory capped per container; compute shared by time slicingAny NVIDIA GPU: on Kubernetes, and on bare metal and VMs in Docker mode
AMD partitionsCompute and memory partitions set on the GPUAMD Instinct GPUs
CPU offload for model servingIdle models move to CPU memory, so one GPU serves more modelsModel endpoints on vLLM, SGLang and llama.cpp
08

Multi-node and HPC work

Kliquequeues, policiesAn existing HPC cluster· Slurm, PBS or LSF, kept as it isHPC submitterlogin nodeBatch templatesbatch, qsub or bsubThe cluster's schedulerpartitions, fair shareSlurm on Kubernetes· a Klique clustering service, no static clusterLogin podsbatch as usualSlurm, in podson the Kubernetes GPU poolWorker podsadded and removed with demand
Keep an existing HPC cluster, or run Slurm without one. Both are reached through the same compute resources.

On HPC clusters

The batch template can take the node count and other directives from the task. The HPC submitter submits it as a batch job with the cluster's own command, and the task runs natively or in a container on the nodes the scheduler allocates.

As the user's own account

On Slurm, the HPC submitter's user map (agent.slurm.user_map) runs each batch job as the Linux account mapped to the Klique user who submitted it. A user with no mapping is refused unless a default account is set. PBS and LSF follow the same submitter pattern, an HPC submitter on the login node with a batch template. The GPU as a Service reference architecture covers HPC user mapping and sessions.

On Kubernetes

Multi-node scheduling runs one task across pods on several nodes. The task states the GPUs per node and the number of nodes.

Slurm on Kubernetes, a clustering service

Klique can run a Slurm cluster as pods on Kubernetes, with a login pod and worker pods that scale with demand. Existing sbatch scripts work unchanged.

Kubernetes in Kubernetes (K3k), a clustering service

Klique can run a virtual Kubernetes cluster inside a host cluster, so a team or tenant gets its own Kubernetes API and namespaces. Its pods run on the host cluster's nodes.

What Klique adds to an HPC cluster

Queue visibility and reordering, environment provisioning, experiment tracking and GPU sharing. Users submit through Klique instead of logging in to the cluster.

09

Layers above the scheduler

Scheduling GPUs on a Kubernetes cluster is one layer. Klique covers that layer in every environment and adds governance and services above it, on the same platform and with the same identity.

KLIQUE ADDSAgent access and secure sandboxesMCP server · agents act with the user's identity, quota and meter · coding agents in sessions, calling models with the user's own Klique tokenMetering and billingGPU-hours, tokens and storage metered per tenant, project and user · exported to billing or chargebackDevelopment lifecycleExperiment tracking · data versioning · pipelines · model registryTokens and modelsLLM gateway · routing rules · token budgets and wallets · guardrailsSelf-serve servicesApp catalogue · remote IDEs · model serving · Slurm and Kubernetes clustering servicesTenantsIsolated tenants · Platform Management Center · each tenant's share and usageIdentity and accessSingle sign-on · RBAC on projects, queues and apps · service accounts · vaultsScheduling across environmentsKubernetes, Slurm, PBS, LSF, bare metal, VMs, public cloud providers, neoclouds · ordered pools · NVIDIA and AMD GPU sharingA GPU SCHEDULER ON ONE CLUSTER COVERSGPU scheduling, one clusterQueues · quotas · GPU fractions · priority · on one Kubernetes cluster. Klique covers this layer too, in every environment.
Scheduling is the bottom layer. Every layer above it applies to work in every environment.

Scheduling across environments

Kubernetes, Slurm, PBS, LSF, bare metal, VMs, public cloud providers and neoclouds behind the same compute resources, with ordered pools and GPU sharing on NVIDIA and AMD hardware.

Identity and access

Single sign-on with the company's identity provider, RBAC on projects, queues and apps, service accounts for automation, and vaults for secrets injected into tasks.

Tenants

One control plane can serve many isolated tenants, such as business units or the customers of a provider, each with its own users, projects, compute resources, policies and worker daemons. The provider sets each tenant's share, and the Platform Management Center shows compute, usage and cost across tenants. The Multi-Tenant reference architecture covers this in detail.

Self-serve services

An app catalogue with remote IDEs, model serving and custom apps, and clustering services for teams that want their own Slurm or Kubernetes cluster, all on governed compute and reached through internal routes.

Tokens and models

An LLM gateway in front of self-hosted and public models, with routing rules, token budgets and wallets, and guardrails. Its self-hosted models run on the same GPU pools this scheduler manages. See the LLM Gateway and Tokenomics reference architecture.

Development lifecycle

Experiment tracking, data versioning, pipelines and a model registry, recorded for every task whichever environment ran it.

Metering and billing

Klique meters GPU-hours, tokens and storage per tenant, project and user, and exports the usage to the billing or chargeback system.

Agent access and secure sandboxes

An MCP server, so AI agents can submit and manage work with the identity, quota and metering of the user they act for. Coding agents run in sessions: credentials come from the platform's vaults, and model calls go through the LLM gateway, where a user's gateway key is their own Klique token. Compute and tokens are governed in one place, under the same identity and budgets.

10

Visibility and metering

Orchestration dashboard

Available and used GPUs, CPUs and workers in every environment, grouped by category and group, with utilization over time and an event log.

Policy view for users

Users see the policies that apply to them: current usage, reservation, limit and the compute resources available to them.

Across tenants

The Platform Management Center shows orchestration, usage and cost for every tenant in the deployment.

Metering

GPU-hours are recorded per user, project and pool, by GPU class. Klique meters usage per tenant and exports it to the billing or chargeback system.

11

Compared with a cluster scheduler

A GPU scheduler for one Kubernetes cluster and a meta scheduler solve different problems. The left column describes a typical Kubernetes GPU scheduler; check a specific product's documentation for its details.

CapabilityA GPU scheduler on one Kubernetes clusterKlique
Where work runsPods on one Kubernetes clusterKubernetes clusters, Slurm, PBS and LSF clusters, bare metal, VMs, public cloud providers and neoclouds
When a cluster is fullWork waits in the clusterWork goes to the next pool in the profile's order, including rented capacity
GPU sharingFractions on the cluster's GPUsStatic and dynamic MIG, memory-capped containers and AMD partitions
QuotasPer project, in the clusterReservation and limit per group, held across every pool
IdentityCluster accounts and rolesSingle sign-on, RBAC, service accounts and identities for agents
Model tokensNot coveredLLM gateway with routing rules, budgets and guardrails
BillingNot coveredGPU-hours, tokens and storage metered per tenant, project and user, and exported to the billing or chargeback system
Services for usersWorkloads on the clusterApp catalogue, remote IDEs, coding agents, model serving and experiment tracking
12

Design considerations

Match each agent to its profiles

The resource manager counts GPUs; the agent applies them. Set GPU limits in the pod or batch template to match each profile, or tasks are counted correctly but run with the wrong allocation.

Size pools to the hardware

Count each pool in whole GPUs, whatever the mix of whole, fractional and MIG work it runs. The scheduler treats a pool as full when its declared capacity is used, so keep the declared capacity equal to the real GPUs.

Keep reservations within capacity

The sum of reservations on a pool should not exceed what the pool holds, or a reservation cannot always be met.

Order pools by cost and locality

Owned capacity first, committed capacity next, on-demand last. Keep interactive sessions near the data.

Plan for preemption

Borrowed work can be preempted when a group below its reservation needs capacity. Preempted work goes back to the front of its queue. Long tasks should save checkpoints.

Map HPC users

On Slurm, map Klique users to Linux accounts in the user map so batch jobs run as the person who submitted them, and set a default account if unmapped users should not be refused.

Set cloud limits

Give each autoscaler instance an instance type, a maximum instance count and an idle timeout. A cloud pool with no running instances still takes work, because the autoscaler registers as its listener and scales from zero. The Cloud Autoscaler reference architecture covers these settings.

Allow outbound only

Agents connect out to the control plane over HTTPS; no environment needs inbound ports from it. On HPC clusters, allow outbound HTTPS from the compute nodes as well as the login node.

13

Glossary

Meta scheduler
A scheduler that decides which environment runs a task, above the schedulers that place it on nodes.
Compute resource
What a user submits work to, named for the allocation it gives, such as multi-node training or a shared GPU: a queue, one per policy and profile. IT decides which pools serve it.
Access channel
A way to submit work: the UI and its apps and workflows, the SDK and CLI, the REST API, AI agents over MCP, or CI/CD pipelines.
Pool
Capacity in one environment, counted in whole GPUs.
Resource profile
A task size and an ordered list of pools.
Resource policy
A user group's reservation and limit, and the profiles it may use.
Reservation
The GPUs a group is guaranteed.
Limit
The most a group can use at once, including idle capacity it borrows.
Klique worker daemon
The agent that pulls tasks for a pool and runs them on Kubernetes, bare metal, VMs or a neocloud. The Klique documentation calls it the Klique Orchestrator.
HPC submitter
The agent on an HPC cluster's login node that turns tasks into batch jobs for Slurm, PBS or LSF.
Apps worker daemon
The agent that runs app controllers, including cloud autoscalers.
Autoscaler
Starts cloud instances for queued work in the customer's account, of the instance type it sets and up to its maximum instances, and stops them after an idle timeout.
Clustering services
Slurm on Kubernetes, and Kubernetes in Kubernetes (K3k): clusters Klique runs on a Kubernetes cluster for teams that want their own scheduler or Kubernetes API.
Neocloud
A provider that rents GPU capacity, usually as Kubernetes clusters or VMs.