- In multi-tenant or multi-team clusters, a single Ingress resource often becomes a points of conflict.
- Advanced behaviors are typically implemented as controller-specific annotations, reducing portability and making validation difficult.
- Gateway API provides a structured model that separates responsibilities across infrastructure operators and application teams while enabling first-class features for modern traffic management.

- Infrastructure providers define GatewayClass (which controller implementation will manage Gateways).
- Cluster operators create Gateways (instances of a GatewayClass that represent tangible infrastructure endpoints).
- Application developers create Route resources (HTTPRoute, TCPRoute, GRPCRoute, UDPRoute, TLSRoute, etc.) and attach them to Gateways.

- Gateways are owned and managed by infrastructure/cluster operators (exposing listeners, TLS settings, and binding to a controller).
- Routes are owned by application teams; they reference Gateways via
parentRefsto attach routing rules and backend destinations. - This model enables multi-tenancy with clearer ownership and safer delegation.
GatewayClassdetermines which controller implementation will reconcile Gateways.Gatewayexposes listeners (for example, an HTTP listener on port 80) and binds to the chosen controller.HTTPRoutereferences the specificGatewayviaparentRefs, declares host/path matching, and points to backend services usingbackendRefs.
spec.tls and relies on controller annotations for redirection. Gateway API models listeners and TLS settings explicitly in the Gateway resource, eliminating annotation-based TLS setups for typical use cases.
Ingress TLS (controller-specific annotation approach):
- TLS termination is explicit and declarative.
- The Gateway defines which route kinds are allowed to attach to a listener.
- No controller-specific annotations are required for standard TLS termination and listener behavior.
weight fields on backendRefs, which is portable across controllers.
Ingress (NGINX canary via annotations):
ResponseHeaderModifier can honor these directives consistently.
Ingress vs Gateway API — quick comparison
Gateway API adoption and controllers
Many popular ingress and service-mesh projects and managed providers have implemented or are implementing Gateway API support. Examples include Amazon EKS, Azure Application Gateway, Contour, Envoy Gateway, GKE, HAProxy, Istio, Kong, Kuma, NGINX Gateway, and Traefik.

- Kubernetes Gateway API: https://gateway-api.sigs.k8s.io/
- Kubernetes Ingress concepts: https://kubernetes.io/docs/concepts/services-networking/ingress/
- NGINX Ingress Controller: https://kubernetes.github.io/ingress-nginx/
- Traefik: https://traefik.io/
- Envoy Gateway: https://gateway.envoyproxy.io/
- AWS EKS: https://aws.amazon.com/eks/
- GKE: https://cloud.google.com/kubernetes-engine
Gateway API provides clearer ownership boundaries (GatewayClass / Gateway / Route), structured TLS and listener configuration, first-class support for multiple protocols, and a filters model for header and traffic manipulation — all without requiring controller-specific annotations.