July 28, 2025·4 min read·engineeringistioinferencegateway-api

Istio describes inference routing through an endpoint picker

Istio's planned 1.27 inference integration uses Gateway API resources and a separate endpoint picker. The July announcement distinguishes gateway support from future waypoint integration.

Two healthy model servers may have very different amounts of work left to do. One may hold a long queue, while another already has the adapter requested by the next client. Routing on connection counts alone cannot express all of those differences, so an inference gateway needs information from the serving system.

The July 28 Istio announcement describes integration with Gateway API Inference Extension. An Endpoint Picker service selects the backend using inference-specific information after a gateway matches the request. The announcement says the implementation is available starting with Istio 1.27, so this is an introduction to that integration, not evidence that every current 1.26 installation already provides it.

I see a plausible reason for mesh integration here because identity and traffic policy already belong at the service boundary. It still needs to justify its operational cost. A new scheduling service in the request path adds state and availability behavior that ordinary gateway configuration does not remove.

A model name does not identify one backend process

The integration uses InferenceModel to describe the logical model endpoint and InferencePool to identify serving capacity. The former belongs to the model owner's configuration, while the latter groups model-server Pods for platform management. This separates the client's requested model name from the individual process that handles the request.

The June introduction by the extension's maintainers explains the same division. A pool is comparable to a Service with inference-specific information, while a model can map a public name to the actual model and rollout policy. Istio adds the gateway implementation that participates in that routing arrangement.

The July example maps one logical model to two backend variants using weights of eighty and twenty. This is useful for a model rollout because clients can keep using the public name. The example is configuration for selecting variants, not evidence of any particular accuracy or performance difference between them.

The announcement explicitly warns that InferenceModel is likely to change in future extension releases. Its v1alpha2 examples should therefore be interpreted as the current early API. An installation needs matching definitions and controller support, rather than assuming the manifest is a permanent interface merely because it resembles other Kubernetes resources.

The gateway delegates the endpoint decision

An incoming request first follows Gateway API HTTPRoute matching. When its backend is an InferencePool, Istio delegates endpoint choice to the Endpoint Picker. The picker considers state such as queue depth and KV-cache utilization, then the gateway sends the request to the selected server.

That delegation is the core mechanism. The gateway retains responsibility for receiving and forwarding traffic, while a specialized component interprets model-serving state. The same division lets inference selection evolve without putting every model-specific heuristic into an ordinary route rule.

KV-cache occupancy matters because generation retains intermediate attention state in accelerator memory. The announcement identifies that memory pressure as a constraint on serving. A server can remain healthy as an endpoint while additional work would create a poor latency outcome. Endpoint health and suitability for the next request are different properties.

LoRA adapter state adds another dimension. A server with the requested adapter already loaded can avoid loading work that another server would require. Routing can therefore trade off load and adapter locality, rather than treating every replica with the same base model as equally ready for a particular request.

The announcement also describes prefix-cache-aware selection. That concerns whether a server already holds state useful to the input prefix. It is distinct from merely having the right adapter loaded. Both can reduce work, but they identify different reusable state in the serving process.

Criticality makes overload a policy decision

InferenceModel includes a criticality setting in the July examples. The announcement distinguishes interactive requests from work that can tolerate delay or shedding. The picker can use that information during high utilization instead of applying an identical admission decision to every request.

That is an explicit policy input. A low-priority batch request and an interactive request can target the same underlying model while expressing different latency needs. Keeping the classification in the model-serving configuration gives the selection component information that a destination address cannot supply.

The setting does not create extra accelerator capacity. Prioritization changes which work receives available capacity and which work may wait or be shed. The practical contract includes the behavior seen by the lower-criticality caller during sustained or temporary overload, not only the improved latency of the preferred request.

I consider that more useful than an unqualified promise of faster inference. Routing can improve how existing resources are used, but a policy that sheds work has made an allocation decision. The configuration and observed outcomes should make that decision understandable.

Gateway support does not imply waypoint support

The July announcement puts waypoint integration on the roadmap. That is a meaningful boundary because ambient mesh users may otherwise assume an Istio traffic-management feature applies to their existing waypoint path automatically. The announced initial integration uses a Kubernetes Gateway, while inference-aware waypoints remain future work.

The same roadmap identifies model-metric autoscaling and heterogeneous accelerators as further development areas. The endpoint selection service can use serving metrics without automatically turning those metrics into an HPA policy. Scaling the pool and routing within the pool remain different operations.

The benchmark discussion links to the extension's early evaluations using H100-backed vLLM deployments. The June source reports broadly comparable throughput and better tail latency at higher offered load. Those results support the usefulness of informed selection under the tested conditions. They do not establish that Istio itself has reproduced every result for every deployment described in the July announcement.

The concrete integration is a gateway that preserves route matching while consulting an inference-aware endpoint picker. Its usefulness depends on the serving state available to that picker and the policies that interpret it. The July description gives those decisions a place in the Istio traffic path while leaving waypoint integration and several scaling capabilities as explicitly unfinished work.