In GKE, Ingress object creates a load-balancer and routing-rules in the backend to expose your application. In scenarios, where many users/teams are sharing the underlying networking infrastructure, control and configuration must be separated to minimize access and fault domains.

Such use-cases have limitations:

  • For ingress objects, the load-balancer & its routing-rules are created in a combined manner.
  • We cannot map multiple services in different namespaces in a single GKE ingress object.
  • Mapping of different DNS/hostname of different ingress can’t be bound with the same single IP address.

Gateway Object can be used to overcome this.

  • Gateway API has core support for cross-namespace routing.
  • Gateway enables the load-balancer and its routing-rules to be deployed separately and be managed by different users/teams across Namespace boundaries.