The inference control plane for Kubernetes and vLLM

Kinference [kay-inference] turns Kubernetes and vLLM into a fully-featured distributed inference platform, with token rate limits, routing policies, cache-aware load balancing, and everything else needed to serve multiple models, tenants, and SLOs.

Solve routing, limiting, and balancing in one layer

Scalable inference across multiple workers requires routing, rate limiting, load balancing, and more. Kinference provides a unified layer that plugs into any existing vLLM deployment and combines these capabilities in a principled manner.

Kinference architectureInference requests from four independent tenants (an agent, a production app, a coding harness and a chat widget) arrive at Kinference's traffic gateway, which accepts OpenAI and Anthropic inference APIs. Inside Kinference, routing, load balancing, classification, rate limiting and a policy engine decide what happens to each request. The gateway then sends it to one of several vLLM workers running on GPUs, or to an LLM gateway that forwards it to external providers. Kinference reads declarative policies and platform configuration from Kubernetes CRDs, receives KV cache events and metrics from the vLLM workers, and reports per-tenant token metrics and SLOs.Policies and configKubernetes CRDsAgentp95 ITL ≤ 100 msProduction appp95 E2E ≤ 120 sCoding harnessp95 TTFT ≤ 2 sChat widgetp95 TTFT ≤ 500 msRoutingPolicy-driven model choiceLoad balancingKV cache, predicted TTFTClassificationPII, prompt complexityRate limitingPer-tenant token limitsPolicy engineDeclarative policies that capture every aspect of system behaviorTraffic gatewayOpenAI, Anthropic inference APIsPer-tenant token metrics and SLOsvLLMglm-5.3B300B300B300vLLMdeepseek-4.1H200H200H200vLLMqwen3.6-27bA100A100A100vLLMgemma-4-12bL40SL40SL40SKV cache events and metricsLLM gatewayExternal providers

Build a scalable inference platform

Running vLLM is just the starting point. Kinference is the mediator between clients and your GPU fleet, giving you a single OpenAI- and Anthropic-compatible endpoint that applies policy, optimizing load, and tracks inference-specific metrics.

KV-cache-aware balancing

Cache-aware balancing optimizes inference response times and maximizes GPU utilization using each replica’s live queue and cache state.

Token rate limiting

Prevent tenants from consuming more capacity than they should.

Per-tenant cost attribution

Measure and report cached prompt token and output token usage, allowing you to measure per-tenant GPU utilization and attribute cost.

Inference "golden metrics"

Measure per-tenant TTFT, ITL, TPOT, and end-to-end latency, and evaluate against declared service objectives.

Capacity modeling

Measure GPU saturation by tenant and over time to build accurate capacity models for your GPU usage.

Semantic classification

Tag requests by complexity, PII, and other factors, and ensure they’re routed correctly.

Control everything with inference policies

Kinference’s declarative policy language allow you to control exactly how inference requests are handled, based on user, model, prompt, state of the GPU pool, and more.

Example policies

Send the simple prompts to less expensive models

Semantically classify prompts by complexity level, and route simpler prompts to cheaper models. But take into account cache usage: if it's faster to send it to an expensive model (because of caching), just do that.

Without Kinference

The model that the user selects is used directly, regardless of suitability for the model.

With Kinference

Inference platform owners can decide exactly under which situations a model is used, including by taking into account semantic classification and GPU cache overlap.

InferencePolicy

apiVersion: kinference.buoyant.io/v1alpha1
kind: InferencePolicy
metadata: { name: smart-semantic-routing,
            namespace: inference }
spec:
  rules:
  - name: low-complexity-consider-qwen
    matches:
    - model: glm-5.3
      tag: complexity-low
    route:
      consider:
      - models: { names: [ qwen-3.6-27b,
                          glm-5.3 ] }
      select: [ { minimize: PredictedTTFT } ]

Reading the policy

matches:

This rule applies only when the requested model is glm-5.3 and the classifier has tagged the prompt as low complexity.

consider:

This rule can route to either glm-5.3 or qwen-3.6-27b.

minimize: PredictedTTFT

This rule picks whichever endpoint is the fastest, based on the predicted TTFT for the prompt. This measure incorporates both KV cache overlap and GPU queue length.

Frequently asked questions

How does Kinference use vLLM?

vLLM is the data plane; Kinference is the control plane. Kinference builds on top of vLLM to provide a scalable, multi-tenant inference platform. Kinference ties together multiple vLLM instances into a unified platform capable of serving many models, tenants, SLOs, and more.

Is Kinference different from an AI gateway?

Yes. AI gateways send traffic across many different external inference providers, handling the peculiarities of each one. Kinference is designed for local inference running on GPUs in the cluster. Kinference can be paired with an AI gateway, which it can use when it offloads traffic from the local cluster.

Which models does Kinference support?

Kinference is model agnostic and can support any model that vLLM is capable of running.

Does my AI application need code changes?

No. Simply point your client at the Kinference service instead of the model endpoint. Model selection, fallback, and rate limiting move into Kubernetes resources managed by the platform team.

How do I run Kinference?

Kinference is a standard Kubernetes deployment. It contains an enforcement gateway that handles inference traffic. Once you deploy Kinference to your Kubernetes cluster, all you need to do is point inference requests through the Kinference enforcement gateway.

Kinference ships with Helm charts as well as a suite of metrics and dashboards in standard Prometheus and Grafana formats, so plugging it into your existing Kubernetes stack is easy.

Open source. Built for platform teams.

Policy-driven inference for every application, team, model and provider.

Get started

Talk to us