Principle:Kserve Kserve Ingress Routing
| Knowledge Sources | |
|---|---|
| Domains | Networking, Kubernetes, Service_Mesh |
| Last Updated | 2026-02-13 00:00 GMT |
Overview
A networking pattern that maps InferenceService endpoints to externally accessible URLs through Kubernetes ingress resources such as VirtualServices and HTTPRoutes.
Description
Ingress Routing determines how external clients reach InferenceService prediction endpoints. KServe supports multiple ingress backends:
- Istio VirtualService: Routes traffic via Istio ingress gateway with host-based routing.
- Gateway API HTTPRoute: The newer Kubernetes-native gateway routing.
- Knative DomainMapping: When using Knative Serving in serverless mode.
The ingress reconciler constructs the external URL using a domain template (Template:.Name-Template:.Namespace.Template:.IngressDomain) and creates the appropriate routing resources. It also sets the internal cluster address for service-to-service communication.
Usage
This principle is active for every InferenceService deployment. Understanding it is essential for:
- Configuring custom ingress domains
- Debugging connectivity issues
- Setting up TLS termination
- Understanding the URL format for prediction requests
Theoretical Basis
The ingress routing follows a host-based dispatching model:
# Abstract routing flow (NOT implementation code)
External URL format: http://<name>-<namespace>.<ingressDomain>
Internal address: http://<name>.<namespace>.svc.cluster.local
Routing path:
1. Client sends request to external URL
2. Ingress gateway resolves host header
3. VirtualService/HTTPRoute matches host → routes to Knative Service or ClusterIP
4. Component service handles prediction request
Status fields set by ingress reconciler:
- status.url → External prediction URL
- status.address → Cluster-internal address
- components.restURL → Per-component REST endpoint
- components.grpcURL → Per-component gRPC endpoint