vLLM¶

Category: AI
Type: Workload Template
Tags: llm · machine-learning · gpu · inference
Overview¶
vLLM is a fast, open-source LLM inference engine with PagedAttention, continuous batching, and speculative decoding. This workload template deploys an OpenAI-compatible API server that can serve any HuggingFace model. Each launch creates a vLLM container with an nginx sidecar for path rewriting, backed by a persistent model cache volume.
How It Works¶
Workload Template — Installs the vLLM schema into Genesis. Once installed, the vLLM type appears in Genesis on the Workloads page, where it can be authored into a workload template. Users can then launch and provision their own inference server on demand within a project through Hubble.
Prerequisites¶
- NVIDIA GPU Operator plugin must be installed for GPU-accelerated inference
- A StorageClass must be available for the model cache PVC (50Gi default)
- Cluster nodes must have GPUs and the
nvidiaruntime class configured - For gated models, a HuggingFace Hub token with access to the model
Installation¶
- Open Terra and navigate to the Plugin Marketplace
- Search for "vLLM"
- Click Install
- Click Confirm to deploy (no install-time fields required)
Once installed, the vLLM schema is available in Genesis. From the Workloads page, author the template — users can then launch and provision inference servers on demand through Hubble.
Configuration¶
Install-Time Fields¶
No install-time configuration is required for this plugin.
Workload Launch Fields¶
These fields are configured when authoring the workload template in Genesis and used each time a user provisions a vLLM server through Hubble:
| Field | Details |
|---|---|
registry |
string · Required · Default: docker.ioContainer registry for the vLLM image |
repo |
string · Required · Default: vllm/vllm-openaivLLM image repository |
tag |
string · Required · Default: 0.14.1vLLM image tag |
model |
string · Required HuggingFace model name to serve (e.g. Qwen/Qwen3.6-35B-A3B-FP8) |
served_model_name |
string · Optional Override the model name returned in API responses |
hf_token |
string · Optional · Sensitive HuggingFace Hub token for gated models — stored as a Kubernetes Secret and injected as HF_TOKEN |
gpu |
boolean · Required · Default: falseEnable GPU acceleration; sets runtimeClassName: nvidia |
gpu_count |
int · Optional · Default: 1Number of GPUs to allocate |
max_model_len |
string · Optional · Default: 262144Maximum sequence length ( --max-model-len) |
max_num_batched_tokens |
string · Optional · Default: 16384Maximum number of batched tokens ( --max-num-batched-tokens) |
max_num_seqs |
string · Optional · Default: 64Maximum number of sequences per batch ( --max-num-seqs) |
gpu_memory_utilization |
string · Optional · Default: 0.9Fraction of GPU memory allocated to the KV cache ( --gpu-memory-utilization) |
quantization |
string · Optional Quantization method — e.g. fp8, awq, gptq. Leave empty for native precision. |
enable_prefix_caching |
boolean · Optional · Default: trueEnable prefix caching for faster generation on repeated prompts ( --enable-prefix-caching) |
enable_auto_tool_choice |
boolean · Optional · Default: falseEnable automatic tool choice in chat completions ( --enable-auto-tool-choice) |
tool_call_parser |
string · Optional Tool call parser type (e.g. qwen3_coder) |
reasoning_parser |
string · Optional Reasoning parser type (e.g. qwen3) |
storage_class |
k8sStorageClass · Required Storage class for the model cache PVC |
storage_size |
string · Optional · Default: 50GiSize of the model cache PVC |
Custom Environment Variables¶
Genesis lets you add arbitrary environment variables to the workload at launch time. These are commonly useful for tuning the vLLM engine:
| Variable | Description |
|---|---|
VLLM_LOGGING_LEVEL |
Logging verbosity for the vLLM engine (DEBUG, INFO, WARNING, ERROR). |
CUDA_VISIBLE_DEVICES |
Restricts which GPUs on the node are visible to the process. |
Notes¶
- GPU-accelerated inference requires the NVIDIA GPU Operator plugin to be installed on the cluster
- The model cache PVC is mounted at
/modelsand set asHF_HUB_CACHE— downloaded models persist across container restarts - For gated models (e.g. Llama, Mistral), set
hf_tokento a HuggingFace token that has accepted the model license — the token is stored in a Kubernetes Secret and injected as theHF_TOKENenvironment variable - The nginx sidecar rewrites the path prefix: requests to
/vllm/<workload-name>/v1/...are forwarded to vLLM at/v1/...on port 8001 — the API is fully OpenAI-compatible - Health checks use
/healthon port 8001 with a generous startup grace period (3600s max) to account for model loading time - vLLM runs as non-root with
fsGroup: 1000 - Supported actions via Hubble:
restart,stop - Telemetry is disabled (
HF_HUB_DISABLE_TELEMETRY: true)