What vLLM high availability requires beyond a single server
Picture a team whose internal assistant or customer-facing feature depends on one vLLM server. Traffic peaks, a node fails, or a model upgrade needs a restart, and the feature goes down with it. Keeping that service available takes three things: multiple replicas behind a load balancer, correct splitting of large models across GPUs and nodes, and health checks and failover wired to the vLLM endpoints. Each one adds work that a single server never required.
The work is harder than it looks for four reasons. First, a model that needs several GPUs or several nodes cannot be copied as freely as a stateless web service. Each replica is a full group of accelerators, so replica count is limited by how much capacity you have and how that capacity is laid out. Second, vLLM's security documentation states that communication between nodes in a multi-node deployment is insecure by default, with no authorization or encryption, so those nodes must sit on an isolated network. Third, the --api-key option does not cover every endpoint. It protects the /v1, /v2, /inference and /cohere paths, but not /health, /metrics, /pause, /resume or /abort_requests. A load balancer health probe or a monitoring scrape can reach control functions that the key does not guard, so the reverse proxy must allowlist only what users need.
The fourth reason is upgrades. vLLM ships new minor releases about every two weeks, for example v0.28.0 on August 26, v0.29.0 on September 9, v0.30.0 on September 22 and v0.31.0 on October 5, 2026. A fleet that runs several replicas cannot be upgraded all at once without losing capacity, and a mixed-version fleet can behave differently across replicas. Decide early whether you will pin one version, roll replicas one at a time, and test each release against your models before it reaches production traffic.
vLLM is licensed under Apache-2.0 and has no paid edition, so there is no license line in the budget. The cost of high availability comes from accelerator capacity, which you need in excess of peak load to absorb a node loss, the surrounding infrastructure such as load balancers, networking and storage, and the people who build and run the fleet. Ask any partner to show how spare capacity, upgrade windows and on-call coverage are costed and who owns each item after handover.
Which vLLM components and settings carry availability
Availability for a self-hosted vLLM service comes from several parts working together: replicas, the endpoints a load balancer routes to, health and metrics signals, and the parallelism settings that decide how one model is split across accelerators. Each card below names one of these parts and the check that confirms it behaves as the design assumes.
vllm serve instances as replicas
Each vllm serve process is one serving unit that holds a model on its assigned accelerators. High availability usually means running more than one such instance so that a failed or restarting instance does not take the whole model offline. Confirm how many GPUs one instance needs for your model, how long a replacement takes to load weights, and whether your accelerator capacity can host the extra replicas at the same time.
OpenAI-compatible endpoints behind the balancer
The load balancer routes client traffic to the OpenAI-compatible endpoints, including completions, chat completions, responses, embeddings and audio routes, depending on which models you serve. Every replica must expose the same set of endpoints for a given model, or some requests will fail intermittently after failover. Test each route you expose on every replica, and confirm which endpoints your vLLM version enables by default.
Health endpoint for liveness and readiness
The /health endpoint lets the orchestrator or load balancer decide whether a replica is alive and ready to accept traffic. A replica can answer liveness while it is still loading weights or stuck on a failed request, so readiness should be gated on a working model rather than on the process existing. Set probe timeouts with model load time in mind, and confirm the exact probe behavior in the serving docs for your version.
Metrics endpoint for queue and KV cache signals
The /metrics endpoint exposes Prometheus-format data on request counts, token throughput, latency histograms and KV cache use. Queue depth and KV cache pressure are the earliest signs that a replica is overloaded, so they should drive scaling and alerting decisions rather than CPU or memory alone. Decide which metrics feed your autoscaler, and keep this endpoint off public routes because it is not covered by the API key.
Tensor and pipeline parallelism settings
Tensor parallelism splits a model across GPUs within one node, and pipeline parallelism splits it across nodes. These settings determine how many accelerators one replica needs, so they fix the smallest failure unit and the capacity cost of each replica. A wrong value can prevent the model from loading or leave expensive GPUs idle. Confirm the flag names, valid combinations and multi-node behavior against the parallelism and scaling docs for your vLLM version before sizing hardware.
Data parallel deployment for mixture-of-experts
For mixture-of-experts models, vLLM supports data parallel deployment, which runs replicated copies of the parallel group to increase throughput across experts. This changes how capacity scales, since adding parallel groups is different from adding independent replicas. Verify with the vLLM documentation which configurations your model architecture supports, and load test the chosen layout before relying on it for failover planning.
Ray or multiprocessing backend for multi-node runs
Multi-node runs use either Ray or vLLM's own multiprocessing backend to coordinate workers across machines. The backend choice affects how a node failure propagates and how you restart a group, so it belongs in the availability design rather than the install notes. Note that inter-node traffic is unauthenticated and unencrypted by default, so the nodes must sit on an isolated network. Confirm backend options and their failure behavior in the docs for your version.
Which vLLM scaling decisions shape availability and operating load
This table compares the main vLLM scaling choices, showing when each fits and what it costs to operate. Read each row as a decision: the left column names the choice, and the other columns show the conditions that favor it and the operating burden it adds.
| Decision | When it fits | Operational cost |
|---|---|---|
| Replicas of a model that fits on one node | The model fits in one node's accelerator memory with room for the KV cache, and the goal is more concurrent requests and failover between identical copies. | Each replica holds a full copy of the weights, so memory cost multiplies with replica count. Load balancing and health checks become the main availability levers. |
| Tensor parallelism within one node | The model is too large for one accelerator but fits across the GPUs in a single node, and per-request latency matters. | GPUs in the node must be fully utilized together, so one failed GPU takes the whole replica down. Confirm interconnect requirements with the hardware vendor. |
| Pipeline parallelism across nodes | The model does not fit in one node even with all its GPUs, and the team accepts extra latency to serve it. | Activations cross the network between stages, so cross-node latency and network quality directly affect response time. Multi-node traffic must sit on an isolated network. |
| Data parallel deployment for mixture-of-experts models | The model is a mixture-of-experts design where the vLLM parallelism documentation supports data parallel deployment for the target model and hardware. | Adds routing and coordination across ranks, and capacity planning needs to account for expert load balance. Confirm supported configurations for each model before committing. |
| Ray versus the built-in multiprocessing backend for multi-node runs | Ray suits teams that already run Ray or KubeRay clusters; the built-in backend suits smaller, self-managed multi-node setups with fewer moving parts. | Ray adds a cluster to install, upgrade and monitor. The built-in backend keeps the stack smaller but still requires isolated networking and careful node lifecycle handling. |
| Scaling on queue depth and KV cache signals | Traffic is variable and the team can scrape vLLM's Prometheus metrics and feed them into an autoscaler. | Requires metrics pipelines, tuned thresholds and load tests. Scale-up lag can cause queueing during bursts, and GPU nodes take time to become ready. |
| Fixed capacity with spare headroom | Traffic is predictable or availability targets are strict, and the budget can carry idle accelerators. | GPU idle cost recurs every hour whether or not requests arrive. Headroom is simpler to operate but costs more over time. |
| Warm spare replicas | Failover must be fast and a replica must be ready to take traffic without loading weights. | Spare replicas hold GPU memory and power while idle, a recurring cost. Confirm model load time on your hardware before sizing spares. |
| Starting new nodes on demand | Traffic is spiky, cost matters more than instant failover, and model load time is acceptable to users. | Cold starts add delay while nodes provision and weights load. Image and model caching choices strongly affect how long recovery takes. |
How to build vLLM high availability in sequence
This sequence takes a single vLLM server on one node to a set of identical replicas behind a health-checked load balancer, with metrics kept internal, scaling bounds defined, and failure behavior rehearsed before production traffic moves.
Confirm model fit and GPU topology on one node
Start with one node and one vLLM server before adding anything else. Confirm that the model weights, KV cache and the context lengths you need fit in the accelerator memory of that node, and record the GPU interconnect layout that the platform team will use later. vLLM supports NVIDIA CUDA, AMD ROCm and Intel XPU GPUs, so confirm your accelerator type against the installation docs for the exact vLLM version you plan to pin. Ask the platform team to confirm the driver and CUDA or ROCm versions in writing. The step is done when the server loads the model, starts with vllm serve, and returns a successful response from /v1/chat/completions for a test prompt. Confirm that the model has a chat template or that you have supplied one with --chat-template, because the chat endpoint depends on it.
Set tensor parallelism within the node
If the model does not fit on one GPU, split it across the GPUs inside the same node using tensor parallelism. Keep this within a node, because inter-GPU traffic on a single host is far more predictable than traffic across a network. Measure throughput and time to first token at the concurrency you expect, and compare the result with the single-GPU baseline from the previous step. The check is a repeatable load test on the single node where the throughput and latency targets are met at the agreed concurrency, and where GPU memory has headroom for batch growth. Record the exact flags used, so that every replica built later starts from the same configuration.
Add pipeline parallelism across nodes only if required
Use pipeline parallelism across nodes only when the model cannot run within one node even with tensor parallelism. Each added node adds a network dependency and a failure mode, so treat this as a last resort for high availability. vLLM's multi-node runs use Ray or its own multiprocessing backend, and the vLLM security documentation states that node-to-node communication is insecure by default, without authorization or encryption. Place the participating nodes on an isolated network segment before you start the cluster, and confirm that no other traffic can reach the inter-node ports. The check is a successful multi-node chat completion sent through the head node, with the isolated network verified from a host outside it. If the model fits on one node, skip this step and go directly to replicas.
Run identical replicas and test each one directly
Create two or more replicas from the same image, the same model files and the same server flags, pinned to one vLLM version. Give each replica its own accelerator resources so a failure in one does not affect the others. Test each replica on its own address before placing anything in front of it. Confirm that each one serves /v1/chat/completions, /v1/completions and /v1/embeddings where you need them, and that each returns consistent output for a fixed test prompt at temperature zero. The check is a successful chat completion sent to every replica individually, with matching model names and response shapes. Do not put a load balancer in front until each replica passes on its own.
Place a health-aware load balancer in front
Add a load balancer or reverse proxy that distributes requests only to replicas that pass a health check. Configure it to probe /health on each replica and to remove any replica that fails from rotation, then return it only after it passes again. Have the reverse proxy allowlist only the endpoints that users need, because the vLLM API key does not cover /health, /metrics and several control endpoints, and the vLLM security documentation recommends a proxy that allowlists user-facing paths. The check is a successful chat completion sent through the balancer, followed by a stop of one replica that shows the balancer routing all new requests to the remaining healthy replica.
Expose metrics to internal monitoring only
vLLM serves Prometheus-format metrics at /metrics, covering request counts, token throughput, latency histograms and KV cache use. Scrape this endpoint from your internal monitoring system over a network path that is not reachable from client networks or the internet. Confirm that the balancer and any public ingress do not forward /metrics, and that the scrape succeeds from the monitoring host only. Review the histogram bucket settings with the monitoring owner before building dashboards, since they determine the resolution of latency views. The check is a scrape from the monitoring host that returns the vLLM series for each replica, paired with a request sent from outside the internal network that returns no metrics.
Define scaling signals and bounds
Choose the signals that will add or remove replicas, such as queue depth, KV cache utilization, and latency percentiles from the metrics endpoint, and set a minimum and maximum replica count for each model. Write these bounds down with the platform team, including the accelerator capacity behind the maximum, because scale-out depends on free GPUs being available. Decide whether scaling is manual or automated, and if automated, confirm the orchestrator you use supports the GPU scheduling you need. Confirm which scaling signal triggers an alert before it triggers a change. The check is a controlled load test that drives the chosen signal past its threshold, shows the expected replica action within the bounds, and returns to the minimum count when load drops.
Rehearse replica and node loss before traffic moves
Before production traffic depends on the setup, run planned failures. Stop one replica under steady load, then remove a whole node if your topology uses one, and record what clients see. Confirm that the balancer stops routing to the failed replica, that remaining replicas absorb the load within their capacity, and that the client-side retry policy handles any requests that were in flight. Agree with application owners on the acceptable error window in writing before the test. The check is a rehearsal report showing that the only client-visible effects are the retries the clients are designed to make, with the failed component restored and returned to rotation afterward. Repeat the rehearsal after each vLLM version change.
How vLLM health checks and failover behave under load
Health checks decide which replicas receive traffic, and under load they are the first place a serving platform quietly fails. A load balancer typically marks a replica healthy when a probe to a fixed path returns a success code. In vLLM, the /health endpoint on the API server is the natural liveness signal: it tells the orchestrator that the process is up and answering HTTP. It does not prove that the model can produce a token, and it does not describe how much work the replica is already holding. Confirm in your chosen vLLM version exactly what /health returns when the engine is busy, when the GPU is stalled, and when the process is still starting up, because the answer determines how aggressive your probe settings can safely be.
Liveness and readiness should be separate decisions. Liveness answers whether the process should be restarted. Readiness answers whether it should receive new requests. A readiness probe that only calls /health can keep sending traffic to a replica whose scheduler is saturated, whose KV cache is full, and whose queue is growing. That replica passes the simple check while every new request waits. A readiness check that submits a small generation request with a strict deadline measures whether the model actually responds. Its cost is GPU time and load on the replica, so keep it cheap, run it at a modest interval, and test that it does not itself trigger the saturation it is meant to detect. Queue depth and KV cache metrics from the Prometheus endpoint are a complementary signal for routing decisions.
When a replica or node dies, every request it was processing is lost from the server's point of view. Clients see connection resets, timeouts or 5xx responses, and any partially streamed output is incomplete. The load balancer can stop sending new work once the probe fails, but it cannot recover what was already in flight. Client-side retries can recover those requests, but only if the operation is safe to repeat. Chat and completion calls are generation requests: a retry produces a new sample, may bill tokens twice, and can duplicate side effects if the application acts on the output. Decide per endpoint whether a retry is acceptable, cap retry counts and total deadlines, and use an application-level idempotency key where the surrounding workflow writes data or triggers actions. Verify how your gateway and client libraries retry, since many do so by default.
Pipeline-parallel deployments need a different failure model. When a model is split across nodes by pipeline parallelism, each node holds a slice of the layers, and a request passes through all of them. If one node fails, the whole model instance stops serving, even though the other nodes are still running. The surviving nodes may hold memory and GPUs that cannot serve anything useful alone. For this reason, treat the set of nodes that make up one model instance as a single unit for health, restart and capacity decisions. A probe on one pod is not enough. Orchestrators that schedule multi-node groups, such as those described in the vLLM Kubernetes deployment options, should restart or replace the whole group together. Also confirm that inter-node traffic is isolated, because the vLLM security documentation states that communication between nodes is insecure by default.
Do not assume default timeout, drain and restart behavior. Confirm the following against your chosen vLLM release and orchestrator before setting production values: how long the server waits for in-flight requests after a shutdown signal, whether it stops accepting new connections immediately, how long model loading takes after a restart, and what the probe initial delay must be to cover that load time. Test each of these with a deliberate kill of one replica under a realistic request mix, and record how many requests fail and how long the service takes to return to full capacity. Because vLLM ships minor releases about every two weeks, repeat these tests after each planned upgrade rather than relying on results from an earlier version.
How vLLM high availability differs by deployment model
On one host with two separate GPU sets, each replica is an independent vLLM server bound to its own accelerators. The failure domain is the host itself, including its power supply, network uplink and driver stack, so a host-level fault takes down both replicas at once. This model protects against a single process or GPU fault, not a host outage. The load balancer is usually a reverse proxy on the same machine that routes between two local ports.
- Failure domain: the host, its power, its network path and its driver stack.
- Load balancer and health checks: the proxy polls the /health endpoint on each port and removes a replica after repeated failures. Confirm the timeouts against long generation requests so healthy replicas are not removed under load.
- Main failure mode: one replica crashes or runs out of GPU memory, and the survivor takes all traffic at reduced capacity.
- Test: stop one replica during a load test and measure how long clients see errors before the proxy routes away. Check that the surviving replica keeps latency within your target.
- GPU pinning: confirm each replica sees only its own GPUs so a restart cannot claim the other replica's memory.
Check whether one host can carry peak load alone, because two replicas on one machine guard against process and GPU faults only.
Each node runs a complete copy of the model, and a load balancer spreads requests across them. The failure domain shrinks to one node and its accelerators, so most availability work moves to the balancer and its health checks. Replicas do not share state, but generation in progress on a failed node is lost, so any retry starts the output again from the beginning.
- Failure domain: one node and its GPUs. The balancer and its network path become the shared dependency.
- Load balancer and health checks: poll /health on every node, drain connections before removing a node, and retry only requests that are safe to repeat.
- Main failure mode: a node dies mid-stream. Clients see a dropped response, and a retry generates it again from scratch.
- Test: drain one node during a load test, confirm that no new requests reach it, and compare error rates with your client retry behavior.
- Capacity and startup: confirm that the remaining nodes meet peak load. A replacement node needs time to load weights before it can take traffic, so check how long that takes in your environment.
Confirm that the balancer itself is redundant, since one balancer would reintroduce a single point of failure.
When one model does not fit in a single node's GPU memory, vLLM can split it with tensor parallelism inside each node and pipeline parallelism across nodes. The failure domain is the whole group, because every pipeline stage must be running for any request to complete. A failure on one node therefore takes the entire model offline, even if the other nodes are healthy. Ray or vLLM's multiprocessing backend coordinates the nodes, and the vLLM security documentation states that traffic between nodes is insecure by default, so the cluster network must be isolated.
- Failure domain: the full pipeline group, since its stages depend on one another.
- Load balancer and health checks: route to the group's entry point, and make the health check reflect whether all stages are running, not only the head process.
- Main failure mode: a worker loses a GPU or a network link. The group stalls and usually needs a full restart with reloaded weights, which can be slow for large models.
- Test: power off a worker during traffic and time the full recovery, including the model load. Verify that the group rejoins without manual steps.
- Redundancy: a second complete group is the main way to remove the group-level outage. Confirm the added capacity and cost in the implementation plan.
Ask the platform owner to document the full group restart time, since that figure sets the availability target more than the balancer does.
With no outbound access, the cluster cannot download models, container images or documentation while it runs. The failure domain is the isolated network together with the local artifact store, so availability depends on every model file, tokenizer, chat template and dependency being staged locally before an incident. The --enable-offline-docs option serves API documentation without external assets. Health checks and metrics must be reachable only from inside the enclave.
- Failure domain: the isolated network, the internal registry and the volume that stores the models.
- Load balancer and health checks: use an internal balancer only. Health checks must not depend on external DNS or certificate authorities that the enclave cannot reach.
- Main failure mode: a replica restarts and cannot find a model file or a chat template, so it fails to start during an outage.
- Test: block all egress, restart one replica and confirm it loads entirely from local paths. Verify that a --chat-template file is staged for every model that needs one.
- Updates: patches and new images arrive through your approved transfer process, which sets the pace of rollovers. Confirm that transfer procedure and its lead time with your security team.
Check that a restart succeeds with the network fully cut off, because that is the failure the enclave is most likely to face.
What drives vLLM high availability effort and cost
This table compares the factors that move the scope of a vLLM high availability project up or down, and what each one means for the written scope. Read each row as a question to answer before asking for a quote, since most of the variation in effort comes from a few of these drivers. No vLLM license fee applies, so the cost comes from accelerators, the surrounding platform and the people who run it.
| Driver | Effect on effort and cost | What to ask for in a written scope |
|---|---|---|
| Model size and GPUs per replica | Larger models need tensor parallelism within a node and pipeline parallelism across nodes, which adds multi-node configuration, testing and failure modes to every replica. | Model names, parameter counts, target precision, GPUs and nodes per replica, and the parallelism layout the vendor documents for each model. |
| Traffic shape and peak-to-average ratio | A high peak-to-average ratio raises the spare capacity needed to meet availability targets and makes autoscaling tuning and load testing more involved. | Measured or expected request rates by hour, peak and average token volumes, latency targets, and the load test profile to be run before go-live. |
| Number of models served | Each model adds its own startup behavior, chat template, health checks, capacity plan and regression tests, so effort grows with the model catalog. | A model inventory with versions, chat template handling, routing rules between models and the test suite that must pass for each one. |
| Environments and regions | Separate development, staging and production clusters, plus each additional region, multiply deployment pipelines, GPU reservations and failover tests. | List of environments and regions, which ones carry production traffic, and whether failover between regions is in or out of scope. |
| Multi-node networking and isolation | The vLLM security docs state that node-to-node traffic in multi-node runs is insecure by default, so an isolated network and its firewall rules must be designed and verified before any replica goes live. | Network topology diagram, the isolated network design, interconnect hardware, firewall policy and who approves changes to it. |
| Autoscaling on GPU nodes | Scaling GPU nodes is slower and less elastic than scaling CPU workloads, so scale-out thresholds, warm-up time and node provisioning all need tuning and testing. | Scaling metrics and thresholds, minimum and maximum replica counts, node pool design, and the scale-in and drain behavior expected during requests. |
| Release cadence and regression testing | vLLM ships new minor releases about every two weeks, so each upgrade needs a regression and performance test cycle, and the team must decide how far to lag behind the newest release. | Version pinning policy, the upgrade test scope, performance baselines, rollback procedure and whether ongoing upgrade support is covered. |
| Compliance evidence needs | Assessors may ask for records of availability tests, change approvals, access logs and capacity reviews, and each one adds collection and documentation work. DeployOpen prepares evidence but does not issue audit reports or certifications. | Named control frameworks or internal policies in scope, evidence types required, retention period, and who will review the evidence before an independent assessment. |
How to test vLLM high availability before go-live
Before a vLLM deployment takes production traffic, run a defined set of failure and load tests against the exact topology you plan to operate: the same replicas, load balancer, health checks, autoscaling policy and, for large models, the same multi-node layout. The point of the test plan is to show that the service keeps answering within the behavior you agreed to, not just that it starts. Each test below should have a written hypothesis, a fixed procedure and a recorded result that someone other than the builder can review.
Start with load tests that push the deployment to the queue depth and KV cache use that your scaling policy assumes. Ask the team that owns the autoscaler to state, in numbers, the level at which new replicas should be added, and confirm that the test reaches that level on purpose. Watch the vLLM Prometheus metrics at /metrics for queue depth, running and waiting requests, and KV cache usage. A test that never reaches the scale-out trigger proves nothing about scaling. Repeat the run with realistic prompt and output lengths from your workload, because short synthetic prompts can leave KV cache pressure untested.
Next, run replica kill tests while clients hold long streaming responses open. Terminate one replica at a time with a normal process kill and with a node-level failure, and measure how long the load balancer takes to stop routing to it and how many in-flight streams fail. For multi-node models, run node loss tests on a pipeline or tensor parallel group, and confirm which parts of the group the orchestrator restarts and whether the surviving nodes recover without manual steps. Vendor and platform documentation for multi-node communication should be checked against your network design, because inter-node traffic is not authenticated or encrypted by default.
Test health checks by making a replica look saturated or stuck without killing it. Use a controlled overload or a paused process to confirm that the readiness or liveness probe removes that replica from rotation and that it returns only after it recovers. Check which vLLM endpoints your probes call, since the /health endpoint and the metrics endpoint sit outside the API key scope. Finally, run a rolling restart of the whole fleet under steady load. Confirm that no endpoint returns errors beyond the retry window your gateway and clients are configured to use.
Record four things for every test: request success rate, latency histograms taken from /metrics over the test window, recovery time from the moment of failure until the replica or service is serving again, and client-visible errors as seen by a load generator outside the cluster. Set the acceptance thresholds yourself from business requirements such as acceptable error rates, tail latency for interactive users and recovery time for batch jobs. No thresholds are supplied here, so agree them with product and operations owners before the first run and keep them fixed, so that results are not tuned after the fact.
How to keep scaling and failover from weakening access control
Adding replicas, multi-node parallelism and failover each create new paths into a vLLM deployment, and some of those paths sit outside the API key. The cards below cover the places where high availability work most often opens access that the single-node setup kept closed, and what to check before scaling out.
Isolate inter-node traffic
The vLLM security documentation states that communication between nodes in a multi-node deployment is insecure by default, with no authorization or encryption. Multi-node tensor and pipeline parallelism therefore needs its nodes on a dedicated, isolated network segment that application clients and general corporate traffic cannot reach. Confirm with your network team that firewall rules block that segment from every other network, and check the Ray or multiprocessing backend ports you have opened.
Allowlist user-facing endpoints only
The --api-key option does not protect /invocations, /pause, /resume, /abort_requests, /metrics or /health, so a load balancer that forwards all paths exposes them unauthenticated. The vLLM documentation recommends a reverse proxy that allowlists only the endpoints meant for users. Build that allowlist at the load balancer and at any proxy in front of it, then test each excluded path from outside the network and confirm it is refused.
Separate internal health and metrics paths
Load balancers need /health to remove failed replicas from rotation, and Prometheus needs /metrics to track throughput and KV cache use, but neither path should be reachable by application users. Give probes and scrapers a separate internal listener or network path that does not pass through the public proxy. Review which sources can reach these paths, because metrics can reveal model names, traffic volume and capacity limits.
Control privileged operations during failover
The /pause, /resume and /abort_requests endpoints change the state of a running replica, and an unauthenticated caller who reaches them can interrupt serving. Failover runbooks and autoscaling controllers often need these operations, so restrict them to an operator network or an admin credential, and log every call. Document which automation is allowed to invoke them and confirm that the load balancer never routes them from user traffic.
Distribute secrets to new replicas safely
Autoscaling adds replicas that need model storage credentials and the endpoint API key at startup. Pass these through the orchestrator's secret store or a vault rather than baking them into container images, machine images or plain environment files in version control. Rotate the API key on a schedule and confirm that a newly started replica picks up the current value without a manual edit, and that revoked credentials stop working on existing replicas too.
Verify access after every scaling event
Access controls can drift when replicas are added, nodes are replaced or proxy configuration is reloaded. Build a repeatable test that calls each allowed and each blocked endpoint through the production entry point, run it after every deployment and after each scale-out or failover drill, and keep the results as evidence. Auditors and security reviewers will look for this kind of recurring check, not a one-time review.
What to monitor, back up, upgrade and document after go-live
The operations team needs a small set of signals that show whether each vLLM replica is healthy, not only whether the load balancer reports the service as up. Each replica exposes Prometheus-format metrics at /metrics on its API server, covering request counts, token throughput, latency histograms and KV cache use. The signals that matter most in daily operation are per-replica request latency and error rates, queue depth, KV cache utilization and GPU node health (temperature, memory errors and device availability reported by the node's GPU monitoring). A single replica with a full KV cache and a growing queue can look healthy at the load balancer while users see slow responses, so alerts should be defined per replica as well as for the pool. Confirm with your monitoring team how often these metrics are scraped and how long they are retained, and remember that /metrics is not protected by the --api-key option, so the scrape path must stay on an isolated network or behind a proxy that blocks it from users. Alert thresholds and dashboards are covered in the monitoring topic.
Every replica should be rebuildable from version-controlled inputs. Keep the vLLM version pin, the exact serving flags, chat templates, tokenizer and model configuration files, and the container image reference in a repository, and reference model weights by a checksum or immutable artifact location rather than by a mutable path. When a node fails and a replacement starts, the new replica should load the same weights and run the same flags as its peers. Store the GPU driver and CUDA versions alongside the image so a rebuilt node is not silently different. Ask your team who owns the model artifact store, how weights are verified before they are loaded, and how a restore is tested, because a backup that has never been restored into a fresh replica has not been proven. Keep a copy of the deployment manifests or Helm values together with the flag set so that a rollback needs no reconstruction from memory.
Minor vLLM releases arrive about every two weeks. The recent releases were v0.28.0 on August 26, v0.29.0 on September 9, v0.30.0 on September 22 and v0.31.0 on October 5, 2026. That cadence means a fleet that is updated only when a problem appears will fall behind quickly, and a fleet that is updated on every release needs a repeatable test. A practical pattern is to upgrade one canary replica first, route a defined share of representative traffic to it, and compare latency, error rates, throughput and output quality against the stable replicas before the rest of the fleet moves. Pinning the version and deciding in advance who approves a rollout, and how long the canary runs, matters more than the exact tooling. Plan for a rollback path that returns the canary to the pinned image. The regression and performance testing approach is described in the upgrades topic.
Documentation should let an engineer who was not on the original project run an incident response at night. The runbooks to write include replica replacement, scaling the pool up and down, draining a replica before maintenance, handling an out-of-memory failure on a GPU, rolling back a version, rotating credentials, and restoring a model artifact. Each runbook should name the metric that triggers it, the command or pipeline step, and the person or role that approves it. The architecture diagrams should show the load balancer and API gateway, each replica and the GPU nodes it runs on, the parallelism layout (tensor parallelism within a node and pipeline or data parallelism across nodes), the isolated network carrying inter-node traffic, and the paths that metrics and health checks use. Keep the diagrams in the same repository as the configuration so that they change with it. Confirm with your security team which diagrams must be shared with auditors and how often they are reviewed.
What buyers ask about vLLM high availability and scaling
What drives the cost of vLLM high availability work?
The cost comes from the people and capacity around vLLM, because the engine itself has no license fee and is Apache-2.0 licensed. The main cost components are GPU or accelerator capacity for each replica and any spare capacity kept for failover, networking between nodes, storage, and the labor to design, build and test the setup. One-time costs include architecture, load balancer and health check configuration, autoscaling on GPU nodes, failover testing and runbooks. Recurring costs include accelerator capacity, monitoring, on-call coverage and upgrades. Costs rise with the number of models, the size of each model, the number of regions or data centers, and the strictness of the isolation required. Ask any provider for a quote that separates implementation labor, hardware or rental, and recurring operations so you can compare each line with your own estimate.
Can our own team build vLLM high availability in-house?
Yes, many teams can, but it depends on the skills already on the team. vLLM is open source and its documentation describes Kubernetes options, including native manifests, Helm, the vLLM production-stack and KubeRay, as well as a VM-based path. The work needs people who can operate GPU nodes and drivers, configure a reverse proxy or load balancer with health checks, run Prometheus-based monitoring, and manage multi-node networking. Check whether you have that combination today and whether anyone has tested a failover on accelerators. A useful exercise is to write a short list of the failure modes you must handle, such as a replica crash, a node loss during a long request, and a driver fault after an upgrade, then confirm each owner before you start.
What does a vLLM high availability project need from our team?
Plan to provide GPU access in your cloud account, data center or air-gapped network, because the work runs inside your infrastructure. You will also need network design that keeps multi-node traffic isolated, since the vLLM security documentation states that communication between nodes is insecure by default, with no authorization or encryption. Named on-call staff are needed to respond to alerts and approve changes. Test traffic is essential for load testing, autoscaling checks and failover drills, and it should resemble real request sizes and concurrency. Finally, assign a decision owner who can approve the written scope, accept the test results and sign off on production cutover. Confirm these needs in the scope document so that capacity and staff time are not assumed.
How long does vLLM high availability take to implement?
No duration is given here because the timeline depends on a written scope, and DeployOpen agrees scope, deliverables and timelines in writing before work starts. The main drivers are the number of models and replicas, whether any model needs multi-node parallelism, how much autoscaling on GPU nodes is required, the state of your existing platform, and how quickly accelerator capacity can be delivered or rented. Testing and failover drills often take as long as the build, so ask for milestones that include test windows and acceptance criteria. Ask any provider to name the dependencies that sit outside their control, such as hardware lead times, access approvals and change windows, and to state which party owns each dependency.
Can a single large model run highly available on vLLM?
Yes, but the unit of redundancy becomes a group of GPUs rather than one GPU. vLLM splits a large model across GPUs with tensor parallelism within a node and pipeline parallelism across nodes, and it can use Ray or its own multiprocessing backend for multi-node runs. Each group that serves the model is a single failure domain, so losing one GPU or node can take the whole group offline. High availability therefore means running at least one additional group behind the load balancer, with enough headroom to carry traffic during a failover. Mixture-of-experts models can use data parallel deployment, which changes the trade-off. For illustrative planning, count the GPUs per group, then add a spare group, and confirm the memory fit with a test load before you commit to hardware.
How does vLLM high availability change with biweekly releases?
vLLM ships new minor releases about every two weeks, so the operating model must include a repeatable upgrade path. The project's release history lists v0.28.0 on August 26, v0.29.0 on September 9, v0.30.0 on September 22 and v0.31.0 on October 5, 2026. A practical approach is to pin one version in production, test each candidate in a staging environment with your models and traffic patterns, run regression and performance tests, and then roll replicas one at a time while watching health checks and latency. Driver and CUDA compatibility must be checked at each step. Teams that do not want to track this cadence often choose an ongoing upgrade and support retainer. Ask any provider how many versions they expect to evaluate per quarter and how they will document each rollback path.
Which vLLM endpoints need protection when running replicas?
The API key does not protect every endpoint, so a reverse proxy must control access. The vLLM security documentation says the --api-key option covers endpoints under /v1, /v2, /inference and /cohere, but not /invocations, /pause, /resume, /abort_requests, /metrics or /health. The documentation warns against relying on the key alone and recommends a reverse proxy that allowlists only the endpoints meant for users. Your load balancer health checks need access to /health, so the design should allow it from the load balancer network only. Control endpoints such as /pause and /resume should be reachable only by operators. Metrics at /metrics are useful for autoscaling and alerting, so route them to Prometheus over a private network and keep them off public paths.
How DeployOpen works on this
DeployOpen plans, implements, hardens, documents and supports self-hosted vLLM inside your own cloud accounts, data centers or air-gapped networks. For high availability and scaling, the work starts with a written scope covering replicas, parallelism, autoscaling, health checks and failover, and ends with a documented handover to your team.
How we scope
- Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
- The written scope names the models, replica counts, parallelism layout and whether multi-node serving is required.
- We record which endpoints must stay reachable, since vLLM's API key does not cover every control and metrics path.
How we build
- We deploy replicas behind your load balancer with health checks that reflect model readiness, not only process liveness.
- We configure tensor parallelism within nodes and pipeline parallelism across nodes, isolating inter-node traffic on a private network.
- We test failover by removing replicas under load and confirm autoscaling on GPU nodes responds as specified in the scope.
How we hand over
- You receive architecture diagrams, configuration files, runbooks for scaling events and node failures, and the test results.
- Runbooks cover pinning vLLM versions, since minor releases arrive about every two weeks and need staged rollout.
- We walk your operations staff through alert thresholds built from vLLM's Prometheus metrics and the failover procedure.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers, separate from the fixed-scope build.
- A retainer can cover regression and load testing before each planned vLLM upgrade and GPU driver change.
- Ask any quote to state which items are one-time build work and which are recurring retainer work.

