VOOZH about

URL: https://thenewstack.io/gateway-api-or-ingress-a-developers-guide-to-kubernetes-routing/

⇱ Gateway API or Ingress: A Developer’s Guide to Kubernetes Routing - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2025-05-02 06:00:47
Gateway API or Ingress: A Developer’s Guide to Kubernetes Routing
Kubernetes / Networking / Service Mesh

Gateway API or Ingress: A Developer’s Guide to Kubernetes Routing

The Kubernetes Gateway API is a more powerful and standardized successor to the Ingress API, addressing its limitations in handling advanced routing and portability.
May 2nd, 2025 6:00am by Janakiram MSV
👁 Featued image for: Gateway API or Ingress: A Developer’s Guide to Kubernetes Routing
Feature image by Jack Church on Unsplash.

Managing how applications within a Kubernetes cluster communicate with the outside world is a fundamental challenge.

For years, the standard approach involved the Kubernetes Ingress API. While functional for basic HTTP and HTTPS routing, Ingress often required complex, non-standard annotations to handle more advanced scenarios, leading to portability issues and configuration headaches.

For example, Nginx Ingress has multiple annotations to configure the ingress resource, which makes it confusing and cumbersome to manage.

Recognizing these limitations, the Kubernetes community developed the Gateway API, a more powerful, flexible and standardized successor designed to streamline traffic management.

The Gateway API is an official Kubernetes project, representing the next generation of APIs for ingress, load balancing and potentially even service mesh interactions. It provides a unified specification for configuring network traffic routing, aiming to be expressive, extensible and aligned with the different roles involved in managing Kubernetes infrastructure and applications.

Understanding the Limitations of Ingress

Before diving into the Gateway API, it helps to understand the component it improves upon. Kubernetes Ingress defines rules for exposing HTTP and HTTPS services running within the cluster to external clients. It typically relies on an Ingress controller, a separate piece of software running in the cluster that watches Ingress resources and configures an underlying load balancer or proxy accordingly.

While simple path and host-based routing work well with Ingress, its core specification is limited. Features like header-based routing, traffic splitting for canary releases, advanced TLS configuration or support for protocols other than HTTP/S often necessitate vendor-specific annotations.

This annotation-driven approach fragments the ecosystem, making configurations difficult to port between different Ingress controllers or cloud environments. Furthermore, the single Ingress resource often blurs the lines of responsibility between infrastructure operators and application developers, potentially leading to configuration conflicts or overly broad permissions.

The Gateway API addresses these shortcomings with a fundamentally redesigned approach. It is not a single resource but a collection of related API types, defined as Custom Resource Definitions (CRDs), that model service networking in a more structured way. You typically need to install these CRDs and a compatible controller implementation into your cluster to use the Gateway API.

The core idea is to provide a standard, expressive, and role-oriented interface for configuring both L4 (TCP/UDP) and L7 (HTTP/S, gRPC) routing. It aims to bring standard, advanced routing capabilities into the core specification, reducing the need for non-portable annotations and promoting consistency across different implementations.

A Role-Oriented Resource Model

A key innovation of the Gateway API is its resource model, which is designed around distinct organizational roles. This separation of concerns clarifies responsibilities and enables safer, more scalable network infrastructure management.

The primary resources are GatewayClass, Gateway and various Route types. A GatewayClass is a cluster-scoped template defined by an infrastructure provider, specifying the controller (like Nginx, Envoy, HAProxy or a cloud provider’s implementation) that will manage Gateways of this class.

A cluster operator typically creates a Gateway resource. It requests a specific traffic entry point, like a load balancer IP address, based on a GatewayClass. The Gateway defines listeners, specifying ports, protocols and potentially TLS settings. Crucially, it also determines which Route resources are allowed to attach to it, often based on namespaces or labels.

Finally, Route resources, such as HTTPRoute, TCPRoute or GRPCRoute, are usually managed by application developers. These resources contain the specific rules for how traffic arriving at a Gateway listener should be mapped to backend Kubernetes services.

An HTTPRoute, for example, defines rules based on hostnames, paths, headers or methods. For a Route to become active, it must reference a parent Gateway, and that Gateway must explicitly allow the attachment.

This layered approach allows platform teams to manage the underlying infrastructure (GatewayClass, Gateway) and set policies. In contrast, application teams can independently manage the routing logic specific to their services (Route resources) within the established boundaries.

Influence of Service Mesh and the GAMMA Initiative

While the Gateway API initially focused heavily on external ingress (North-South traffic), its design principles resonated with the challenges of managing internal, service-to-service (East-West) traffic, traditionally the domain of service meshes like Istio or Linkerd. Service meshes provide capabilities like mutual TLS, fine-grained traffic control and observability for internal communication.

The Gateway API’s flexible resource model, particularly the Route resources (HTTPRoute, GRPCRoute, etc.), presented an opportunity to unify the configuration experience for both ingress and mesh traffic. This led to the GAMMA (Gateway API for Mesh Management and Administration) initiative.

GAMMA extends the Gateway API model to configure service mesh behavior. The core concept involves attaching Route resources directly to Kubernetes Service objects, rather than Gateway objects.

This allows developers to use the same familiar HTTPRoute specification to define rules for how traffic should be handled between services within the mesh, controlling aspects like timeouts, retries or path-based routing for internal calls.

The goal is to provide a single, consistent API for managing both external access (via Gateway attachment) and internal service interactions (via Service attachment), simplifying the overall network configuration landscape in Kubernetes.

While GAMMA offers a standardized approach, it’s worth noting that specific service mesh implementations might still offer their own CRDs for advanced features beyond the scope of standard Gateway API Route types. This integration highlights the Gateway API’s ambition to serve as a comprehensive service networking standard for Kubernetes.

Practical Implications for Developers

For developers, the Gateway API offers more direct control and a better experience. You can define complex routing logic for your application using HTTPRoute or other Route types, specifying path matching, header conditions, traffic splits between service versions, request/response modifications and timeouts directly in a standardized way.

This configuration lives alongside your application code and can be managed independently, as long as it adheres to the rules set by the cluster operator on the parent Gateway. This clear separation empowers developers to manage their application’s entry points effectively without needing deep knowledge of the underlying infrastructure or relying on potentially fragile annotations.

Considerations for Adoption

While powerful, the Gateway API does introduce more concepts than the single Ingress resource. Its multi-resource model (GatewayClass, Gateway, Route, ReferenceGrant) has a steeper learning curve. Additionally, because it relies on CRDs, you need to ensure the API definitions and a compatible controller are installed in your cluster before you can use it. The ecosystem of controllers and tooling is rapidly maturing but might still be less extensive than the long-established Ingress ecosystem in some areas.

Conclusion: The Future of Kubernetes Networking

The Kubernetes Gateway API represents a significant step forward from the limitations of the Ingress API. By offering a standardized, expressive, extensible and role-oriented model, it provides a much more robust foundation for managing network traffic in modern Kubernetes environments. Its native support for advanced routing, multiple protocols, clear separation of concerns and integration with service mesh concepts empowers both platform operators and application developers.

While requiring some initial investment to understand its concepts, the Gateway API delivers greater portability, flexibility and control, positioning it as the strategic direction for managing how applications connect within and beyond Kubernetes clusters.

TRENDING STORIES
Janakiram MSV (Jani) is a practicing architect, research analyst, and advisor to Silicon Valley startups. He focuses on the convergence of modern infrastructure powered by cloud-native technology and machine intelligence driven by generative AI. Before becoming an entrepreneur, he spent...
Read more from Janakiram MSV
SHARE THIS STORY
TRENDING STORIES
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.