Skip to main content
This page covers what you need before installing and helps you pick an install method. Each method ends up deploying the same operator and the same CRD; the difference is how you manage the release.

What gets installed

Operator

A small controller-manager Deployment that watches the CRs below cluster-wide. It also serves the mutating webhook that wires vLLM pods to the engine.

CRDs

LMCacheEngine, LMCacheCoordinator, and CacheBlendEngine — the specs the operator reconciles.

Engine DaemonSet

One LMCache cache server pod per GPU node, created by the operator from your CR.

Coordinator

A fleet-wide Deployment the engines register with, for cross-node cache coordination.

Prerequisites

The chart’s kubeVersion constraint is >=1.28.0-0. OpenShift 4.16+ and EKS / GKE / AKS on a supported control plane all qualify.
The engine DaemonSet schedules onto nodes labeled nvidia.com/gpu.present=true. On clusters with the NVIDIA GPU Operator installed, this label is set automatically. On clusters without it, label your GPU nodes manually:
On a cluster with no GPU nodes the install still succeeds — the DaemonSet stays at 0 desired replicas until a matching node appears.
The NVIDIA GPU Operator exposes GPUs via the Container Device Interface (CDI). Before GPU Operator v25.10.0, CDI was off by default (cdi.enabled: false) — and with it off, the engine/vLLM pods get stuck in ContainerCreating (no clear error). On those versions, enable CDI in the GPU ClusterPolicy:
GPU Operator v25.10.0+ enables CDI by default — no action needed. See Troubleshooting → Pod stuck in ContainerCreating if you hit this.
Installation creates cluster-scoped objects (a CRD, a ClusterRole, and a ClusterRoleBinding). You need permission to create those.
kubectl on Kubernetes, oc on OpenShift. The two are interchangeable for everything in these docs — examples are shown with kubectl unless an OpenShift-specific command is required.

Pick an install method

Helm

The primary path. Single helm install command, simple upgrades and rollbacks.

Modify Existing vLLM Deployment

Patch an existing vLLM Deployment to mount the engine connection ConfigMap and use LMCache MP mode safely.

GitOps (Argo CD)

Declarative, Git-driven installs across many clusters. Best for fleets and audited environments.

OpenShift

OpenShift adds one extra flag for the privileged SCC required by hostIPC. Read this after picking Helm or GitOps if your target is OpenShift.

Kustomize

Render the chart once with helm template and patch it with Kustomize overlays. For teams that standardize on Kustomize as their final renderer.

Verify your cluster is ready

Run these three preflight checks before installing.
1

Kubernetes is 1.28 or newer

Look at the Server Version line — anything v1.28.0 or newer qualifies. OpenShift users can also run oc version; the Kubernetes Version line is what matters.
2

At least one GPU node is labeled (or you accept an empty DaemonSet)

A non-empty list means the engine DaemonSet has somewhere to schedule. An empty list is fine for an operator-only install — see Install modes.
3

You can create cluster-scoped resources

All three must return yes. As a shortcut, kubectl auth can-i '*' '*' --all-namespaces returning yes means you’re effectively cluster-admin.Each command also prints a Warning: resource '...' is not namespace scoped line — that’s expected (these are cluster-scoped resources) and harmless. The yes/no answer is what matters.
If any check fails: bump the cluster version, label the GPU nodes (see the prereqs accordion above), or ask a cluster admin for the missing RBAC.