
Chief Email Outputter at @BuoyantIO. Nominal @Linkerd Maintainer.
Joined July 2008
- Tweets75
- Following950
- Followers7.1K
- Likes13.5K
William Morgan retweeted
We’re excited to feature Kinference on the vLLM blog. @BuoyantIO built a new open source control plane for running vLLM on Kubernetes.
Try it with the getting started guide and send the team your feedback!
Our friends at @vllm_project just published our post introducing Kinference, a new open source project. Kinference is an inference control plane for Kubernetes and vLLM. There’s a getting started guide at the end, so you can try it on your own cluster 👉 vllm.ai/blog/2026-11-04-intr…
Today we launched Kinference, a new open source project I've been working on for building scalable inference platforms on top of @vllm_project. Self-hosted inference is such a fascinating and crazy space and I did not really expect to ship a project here, but this is probably the most excited I've felt about anything since the early days of @Linkerd!
Kinference came about when we saw how hard it was (for our customers and ourselves) to run your own inference. Sure you can serve a model, but... what then? What if you have a bunch of models? And you want to change them without interfering with your clients? What if you have multiple users with different requirements and you need to juggle them all? Make sure no single user can consume everything? Make behavior under saturation or failure explicit? What if you need to burst to the cloud? And on and on...
Once we took more than 3 steps down this path it was clear that serving inference was a *platform-shaped problem*. Yes shockingly no one had built a platform-shaped solution. Which is crazy because platforms are central to how to build scalable reliable software in the modern world!
So we ended up building Kinference. We design it to be a platform layer for inference. It runs on top of vLLM and provides all the features necessary for treating it as a platform problem, including token rate limiting, tenant usage and cost tracking, intelligent load balancing, and inference policies. The policy stuff is especially powerful IMO and I'm pretty happy with how it turned out.
It's an early project, but we've been using it internally at Buoyant to juggle a bunch of AI tasks from a bunch of clients across a bunch of models, and it has been awesome.
So: if you are serving inference to an ever-changing set of clients with varied and competing demands, from a ever-changing set of LLMs running on a heterogeneous, evolving pool of GPUs, and somehow have to keep everyone happy... please take a look and I'd love your feedback!
kinference.ai/
By the way, building inference infrastructure is pure crazy town if you're coming at this from the service mesh perspective. Basically all the things we've been doing for years—load balancing, routing, proxying—are still major problems to be solve. BUT all the details are totally different and you have to revisit all your assumptions.
For example, we've been load balancing requests in @Linkerd for a decade. We have always been latency aware: we measure the moving average of latency for each endpoint, we weight it exponentially to favor more recent data, and then we use the "power of two choices" algorithm to select the endpoint for a request very quickly.
We do it in this particular way because Linkerd's load balancing is designed to handle a huge amount of traffic going to a huge number of very fast endpoints and to be responsive to changes in small #'s of milliseconds. So we have to be very efficient in how we make every decision.
For inference, proper load balancing makes a HUGE difference but all the details are all completely different. Your endpoints now take, say, 3000ms or even 30s instead of 30ms—and that's just to get the first token. They can take *minutes* to complete the request. So requests are dramatically slower and there's a lot less of them. Your decision-making budget is just *luxurious* compared to where we were balancing microservices requests.
We take advantage of this in Kinference to do KV-cache-aware load balancing. Inside Kinference we maintain a model of the KV cache content of each vLLM worker. This comes in as a set of block hash ids from each vLLM instance, over ZeroMQ. When a new prompt comes in (i.e. over HTTP), we tokenize it, chunk it into blocks, hash them, and use that compute the exact amount of prefix overlap with each vLLM instance we're tracking. Then we build an expected TTFT for each instance for that prompt and send it to the fastest one.
Seems like a lot of work, right? And this whole process is actually pretty fast except for the tokenization step, where we literally call out to vLLM over the network (!!!) and say, hey, please tokenize this. This can take... 50ms? 80ms? More? From the Linkerd perspective this whole setup is utterly *insane* (really, you want to make an inline synchronous HTTP call to another system just to make a load balancing decision???) and the amount of time it takes is laughable ... but it doesn't matter! We have that time and more.
And we do it because hitting the GPU with the right KV cache content can mean the difference between a 3s TTFT and a 30s TTFT. Or more! It's crazy! Again, these numbers are, like, all bonkers, absolutely bonkers from the service mesh perspective.
We did a little benchmarking to show how nuts this all is. We compared balancing inference requests to a set of 3 vLLM pods, using Kinference on one hand and a regular Kubernetes service on the other.
Even in this very basic setup where Kinference is spending live-request-path time interrogating other systems over HTTP calls, we were able to show a 95% reduction in median TTFT! And a 7 X increase in capacity! Obviously that is workload-specific but all these numbers are just bonkers.
So there you have it: use Kinference and even without any of the fancy policies or model aliases or bells and whistles, you can drop your TTFT by probably astonishing amounts (depending on your exact workload) vs plain Kubernetes balancing.
buoyant.io/blog/distributed-…
Always figured I'd end up in a documentary one way or another 😬
The @Linkerd documentary is here and it looks incredible. Featuring yours truly plus a host of much more interesting people. Premiering at @KubeCon_ SLC next week and I'll be there to watch it!
Replying to @Linkerd
@Linkerd turned 10, and our team, community members, and the @CloudNativeFdn sat down to chat about how we got here. Add to your schedule hubs.ly/Q04D9Cn40
William Morgan retweeted
Forsta runs Buoyant Enterprise for Linkerd across 40+ Azure Kubernetes clusters, roughly 2,000 pods per cluster, and about 400 services. Running it takes barely 0.1% of their operational headcount. Read the case study: hubs.ly/Q04Brjdy0
William Morgan retweeted
Couple of weeks ago I was a guest on #TheAIKubernetes Show where I had a good conversation with @wm about what it actually takes to run AI workloads on Kubernetes.
Most load balancers route on URL path. The OpenAI API spec puts the model ID in the request body. Standard load balancing doesn't work for model-based LLM routing. The Gateway API Inference Extension was built specifically for this.
We also got into agentic workloads and why they're different from inference, the identity and resource management challenges, and where Kubernetes is heading over the next year.
Watch our conversation: lnkd.in/dE9-p-r6
#TheAIKubernetesShow #Kubernetes #AgenticAI #LLMInference
William Morgan retweeted
🤖 #AIAgents are powerful—but also unpredictable and risky when they start making autonomous API calls in your enterprise.
@BuoyantIO's CEO explains how @Linkerd's new #MCP support brings #zerotrust #security & real-time #observability to #agenticAI workloads.
vmblog.com/archive/2025/11/0…
See them at #KubeCon booth 440!
William Morgan retweeted
Big news for Linkerd and Windows users! Linkerd 2.19 just dropped, making us the *first* service mesh to officially support Windows nodes in Kubernetes. Get ready to extend Linkerd's power to your containerized Windows applications. Learn more 👉 hubs.ly/Q03QXXb40
William Morgan retweeted
omg @software_daily doing a great job of unwrapping service mesh at all levels in this episode with @wm and @linkerd player.fm/series/cloud-engin… #kubernetes #microservices
William Morgan retweeted
- Also, I'm slightly obsessed with Linkerd2 right now 😍 so if u wanna geek out about that please lmk @linkerd













