Kinference routing requests to vLLM servers on Kubernetes, shown as a network diagram

Kinference Explained: Buoyant’s Open Source Router That Aims to Speed Up vLLM on Kubernetes

Kinference is a new open source control plane from Buoyant that sends each AI request to the vLLM server that can answer it with the least work. If you run your own models on Kubernetes, it aims to cut wait times without adding GPUs, though every number so far comes from Buoyant’s own tests.

Here are the facts a skimmer needs:

  • What it is: an inference control plane for vLLM on Kubernetes
  • Who made it: Buoyant, announced on the vLLM blog on November 4, 2026
  • License: Apache 2.0, with source on GitHub
  • Works with: clients that speak the OpenAI or Anthropic API format
  • Catch: the benchmarks are vendor-run and cover one workload type

Those five lines are the whole story in short. The rest of this post explains what the router actually does and whether it’s worth a weekend of your time.

What Kinference does that a plain load balancer can’t

A standard Kubernetes load balancer spreads requests across your model servers without knowing what each one is holding. That works fine for web pages. It works less well for language models.

Here’s why. A vLLM server keeps a KV cache, which is stored work from prompt text it has already processed. If your next request starts with the same text, a server with that cache can skip a lot of effort. A blind load balancer sends it to whichever server is next in line.

Kinference looks at three things before it picks a worker: GPU queue sizes, how each worker has performed historically, and what’s in its KV cache. It then routes the request to the worker that will do the least work. According to the vLLM blog post, it also adds token rate limiting, per-tenant usage and cost tracking, and inference policies.

If you’re already self-hosting open models, like the ones in our looks at ERNIE 5.5 Flash Base or Recursive Flint, this is the layer that sits in front of them once more than a few people start sending requests.

The Kinference numbers, and why to read them carefully

Buoyant compared Kinference with standard Kubernetes load balancing (kube-proxy) and published these results:

Test Result Workload
Median time to first token 95% lower Unloaded, one workload type
Median end-to-end latency 45% lower Unloaded, one workload type
Goodput (requests that meet the latency target) About 7.4x higher Shared-prefix prompts
Goodput About 3.5x higher Multiturn chats
Latency target met At concurrency 32 (shared-prefix) and 8 (multiturn) kube-proxy never met it

The big gains show up when prompts share a long opening, such as a fixed system prompt or a growing chat history. That’s exactly where cache-aware routing should help. If every request in your app is unique, expect much less.

Treat these as a reason to test, not a promise. The numbers are vendor-run, and the post doesn’t list any limitations. Run your own traffic through it before you believe them.

Policies you can write in YAML

Kinference’s rules are InferencePolicy resources, so they live in YAML next to the rest of your cluster config. The examples in the announcement cover three jobs:

  • Semantic routing: send simple prompts to a cheaper model and hard ones to a bigger one
  • Bursting to a cloud provider when your own GPUs are saturated
  • Keeping requests flagged as containing personal data on your own hardware

That last one is the interesting policy for teams with privacy rules. It lets you use a cloud fallback for traffic spikes without letting sensitive prompts leave the building.

How to try Kinference on your own cluster

You need a Kubernetes cluster with kubectl and Helm, plus access to the OCI Helm chart registries. The guide uses Gateway API CRDs version 1.5.1. It doesn’t state GPU or Kubernetes version requirements.

The install runs in four steps:

  1. Install the Gateway API CRDs.
  2. Install the gateway CRDs and gateway charts with Helm.
  3. Install the Kinference CRDs and chart, with extension.enabled=true.
  4. Check that the pods are running with kubectl get pods.

The guide installs into the default namespace, so override the namespace settings if you want another. Buoyant also warns that these steps will change, so use the docs at kinference.ai as your reference rather than copying commands from this post.

Frequently Asked Questions

Is Kinference free to use?

Yes. Buoyant says it’s fully open source under Apache 2.0, and the code is on GitHub at Kinference-AI/kinference.

Do I need Kubernetes to use Kinference?

Yes. It’s built as a control plane for vLLM on Kubernetes, and the install guide assumes a cluster with Helm and kubectl.

Will Kinference make my chatbot faster?

Possibly. The published gains came from shared-prefix and multiturn workloads on one test setup. Apps with mostly unique prompts may see less.

Can my existing app talk to it?

Clients send OpenAI- or Anthropic-compatible traffic to its HTTP endpoint, so apps that already use those formats shouldn’t need a rewrite.

Is Kinference ready for production?

The announcement doesn’t say, and it warns the install steps will change. Try it in staging first.

Our take on Kinference

If you run vLLM for a team and your prompts share long prefixes, Kinference is worth a staging test this month. Cache-aware routing is a sensible idea, and the Apache license means trying it costs you nothing but time. If you only run a model on one machine, or you use hosted APIs, skip it. Wait for independent benchmarks before you plan hardware around the 7.4x figure.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *