Kubernetes Gateway API is a Kubernetes Application Programming Interface for defining how traffic enters a cluster and reaches Services. It gives platform teams a standard way to manage gateways, listeners, routing rules, and traffic policies using Kubernetes resources instead of vendor-specific ingress controller configuration.
Gateway API manages inbound service traffic, usually HTTP, HTTPS, TCP, TLS, or gRPC. It is commonly used to route external requests from a load balancer or proxy to Services running inside a Kubernetes cluster.
For example, you can define rules such as:
Gateway API uses Kubernetes custom resources. A controller, such as an ingress controller, cloud load balancer controller, or service mesh controller, watches these resources and configures the actual networking infrastructure.
The main resources are:
A platform team can create a shared Gateway for HTTPS traffic on port 443. An application team can then create an HTTPRoute that attaches to that Gateway and routes traffic for api.example.com to its Kubernetes Service.
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: public-gateway
namespace: platform
spec:
gatewayClassName: example-gateway-class
listeners:
- name: https
protocol: HTTPS
port: 443
hostname: "*.example.com"
tls:
mode: Terminate
certificateRefs:
- name: example-com-cert
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: api-route
namespace: apps
spec:
parentRefs:
- name: public-gateway
namespace: platform
hostnames:
- "api.example.com"
rules:
- backendRefs:
- name: api-service
port: 8080
In this setup, the platform team owns the shared Gateway, while the application team owns the route for its service. This separation works well in multi-team clusters.
Kubernetes Ingress is the older built-in API for HTTP and HTTPS routing. It works well for simple routing, but many advanced features depend on controller-specific annotations.
Gateway API was designed to fix several common Ingress limitations:
Ingress is still widely used and supported. Gateway API is usually a better fit when you need shared gateways, advanced routing, or cleaner separation between infrastructure and application teams.
A Kubernetes Service of type LoadBalancer exposes one Service through an external load balancer. It is simple and useful, but it does not provide host-based or path-based routing by itself.
Gateway API can route many hostnames and paths through one gateway. For example, a single external load balancer can route api.example.com, admin.example.com, and example.com/app to different Services.
Gateway API is often managed through GitOps, Helm, Kustomize, or Terraform-backed workflows. If your team manages Kubernetes manifests through infrastructure as code, the same review and deployment process can apply to Gateway API resources. For example, teams that deploy Kubernetes resources using Terraform can include Gateway and Route manifests in the same delivery flow.
Gateway API also pairs well with cloud infrastructure automation. If your gateway depends on cloud resources such as DNS records, certificates, or managed load balancers, tools like Crossplane can manage those dependencies. A related pattern is to deploy AWS resources using Crossplane on Kubernetes while keeping application routing inside the cluster API.
During cluster lifecycle work, check Gateway API versions, controller compatibility, and CRD upgrades. This is especially important during EKS, GKE, AKS, or self-managed Kubernetes upgrades. For practical planning, see these Kubernetes upgrade tips for startups.
Imagine a startup running three services on Kubernetes:
The platform team creates one public Gateway for HTTPS traffic. The application teams create separate HTTPRoutes:
This keeps the shared entry point stable while letting each team change its own routing rules through pull requests.
Kubernetes Gateway API is the modern Kubernetes model for managing traffic into clusters. It gives you structured gateway and routing resources, clearer team ownership, and stronger support for advanced traffic routing than traditional Ingress. It works best when your platform team standardizes the controller, ownership model, certificate process, and deployment workflow.