We have around 500+ services deployed in GKE. We have used default ingress to expose the services to outside the cluster. As part of Ingress deployment, GCP created internal application load balancer(L7). Once we reach load balancer routing rules more than 100, we started getting issues, means redeployment of ingress taking more than 1 hour.
In order to overcome the situation, we decided use gateway (https://cloud.google.com/kubernetes-engine/docs/how-to/deploying-gateways). When we create gateway, google internally creates internal application load balancer(L7) based on the class selected. Internal Load balancer has a limitation, Google supports maximum of 200 “Path rules or route rules per path matcher” for Internal Application Load Balancer.
To overcome this situation, we have decided to add additional Gateways. Currently we have multiple gateways each of them assigned with separate hostnames.
I have few queries,
- What could be the ideal solution for handling 500+ microservices hosted in GKE (Ingress/Gateway or something else)
- If I need to continue with multiple gateways, I have to configure different hostnames in client systems. Is there any way I can add extra hob in between client and actual ingress (ILB)?
Any support much appreciated
Thanks, JK