All writing

Engineering field notes

Gateway API: The Future of Kubernetes Networking

The benefits of using the Kubernetes Gateway API.

Updated

Kubernetes networking has evolved substantially. Ingress provided a central HTTP(S)-focused entry point, but it bundled TLS, listeners, and application routing into a single object, leading to overlapping ownership and a growing reliance on vendor-specific Ingress Controller annotations.

The Gateway API represents a shift in design principles, introducing role-oriented resources that cleanly separate infrastructure, platform, and application concerns. Its portability, expressiveness, and extensibility create a consistent, shared API across implementations, reducing controller-specific behaviors and enabling clearer boundaries between teams.

Why switch now

Ownership and attachment

One reason I find this model useful is that the API can express who owns each part of a routing change. A typical three-role arrangement looks like this:

ResourceTypical ownerResponsibility
GatewayClassInfrastructure providerController and gateway class
GatewayPlatform / cluster operatorListeners and permitted route attachments
HTTPRouteApplication developerApplication routing and backend selection

Route attachment requires agreement from both sides: the route names its intended Gateway in parentRefs, and the Gateway listener permits that attachment through allowedRoutes. Application teams can manage routing within the exposure boundary set by platform teams. The Gateway API security model explains these permissions and attachment rules.

These are API responsibilities; they do not require three separate teams. In a small environment, one person can hold several roles. The useful design question is which changes an application owner should make independently and which need coordination with the platform owner. The roles and personas guide describes that flexibility.