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.