Proposal: Replace Heavyweight Network Layer with Kubernetes Gateway API for Path-Based Routing and Lightweight Deployment #15729
Labels
kind/feature
Well-understood/specified features, ready for coding.
Describe the feature
Problem Statement
Knative Serving forces users to install a heavyweight network layer (e.g., Istio, Kourier), which has two critical drawbacks:
Excessive Complexity and Resource Overhead: Istio/Kourier require additional control plane components (e.g., Envoy proxies, Gateway controllers), increasing cluster resource consumption and maintenance costs.
Lack of Native Path-Based Routing: Current Knative network layers do not natively support path-based routing configurations (e.g., /api/v1 → Service A, /static → Service B), forcing users to manually hack Istio VirtualService or use experimental workarounds.
This contradicts the Kubernetes ecosystem's trend toward lightweight standardization (e.g., Gateway API).
User Pain Points
"Why do I need Istio just to split traffic by path?": Users are frustrated by mandatory network components for basic routing needs.
"Knative should be simpler!": The extra network layer complicates deployments, especially in edge or resource-constrained environments.
"Gateway API already solves this!": Kubernetes Gateway API (stable since v1.28) provides path-based routing and traffic splitting, making Knative’s custom network layer redundant.
Proposed Solution
Integrate Kubernetes Gateway API as the default network layer, allowing users to:
Skip installing Istio/Kourier entirely.
Define path-based routing directly in Knative via Gateway API’s HTTPRoute (example below).
Simplify canary releases using Gateway API’s built-in traffic splitting.
Example Path-Based Routing with Gateway API:
Why This Matters
Alignment with Kubernetes Standards: Gateway API is the future of Kubernetes ingress, reducing fragmentation.
Path-Based Routing Out of the Box: No need for Istio CRDs or manual VirtualService patches.
Using k8s Gatewaw API can easily allow more gateways to access knative
Implementation Roadmap
Phase 1: Add a network-layer: none option to Knative Serving installation, disabling Istio/Kourier.
Phase 2: Implement Gateway API adapter to reconcile Knative Route → HTTPRoute.
Phase 3: Deprecate legacy network layers in favor of Gateway API (opt-in).
The text was updated successfully, but these errors were encountered: