Having a single load balancer instead of two

We are having a GKE cluster with like 10 micro-services (pods) and we set up our load balancer using ingress YML with a different path for each service.

now we need to use cloud storage bucket to save user's images and want to point the same application load balancer that got created by the ingress to this bucket using a certain path. or the best practice is to use a different load balancer for the cloud storage bucket other than the GKE ingress?

We want to have a single load balancer to simplify the network architecture and potentially reduce costs by minimizing the number of load balancers we need to manage.

Also is there any GCP docs talking about this scenario? 

and if its better to use a single load balancer is it better to setup this in the ingress YML ? or just edit the created load balancer in the GCP console?  

 

0 3 224
3 REPLIES 3

It seems from reading you will end up with the need to balance multiple GKE services/pods and Cloud Storage.  Global external Application Load Balancers might do it.  In this article https://cloud.google.com/cdn/docs/setting-up-cdn-with-bucket they say

Because global external Application Load Balancers can have multiple backend instance types— Compute Engine VM instances, Google Kubernetes Engine Pods, Cloud Storage buckets, or external backends outside of Google Cloud

 I would definitely prefer running these scaled up instead of 10 load balancers. 

Here's more info:  https://cloud.google.com/load-balancing/docs/https 

 

Thanks for your reply,  but let me rephrase my question Im afraid its not clear enough. 

- We have GKE cluster having 10 pods and each with its own service (internal load balancer inside the GKE cluster)
- We created a Single Global application load balancer as an GKE ingress with a certain host i.e api.domain.com  and map each service to a certain path. so now we have only one Global external application load balancer and all is good.
- Now we want to start using a cloud storage bucket and we want to enable CDN and hence using a global external application load balancer.  

so my question is should we use a different load balancer for this so we end up having 2 Global external load balancers? or the same load balancer that got created by the GKE ingress so we end up having a single global external load balancer?   any docs explaining this? 

 

Hi @tamer_m_saleh ,

You could achieve load balancing with Cloud storage bucket, CDN and GKE cluster (with 10 pods each with its own service) using a single load balancer for your microservices and it can indeed simplify your network architecture and potentially reduce costs.

Although you need to make sure you test and validate your setup thoroughly to ensure that the traffic is properly set-up then monitor it's performance to identify issues that occur. Make sure that your ingress controller is configured to handle routing traffic on your microservices.

The decision to use one Global Application load balancer or separately depends on your requirements, costs and preferences.

Here is the documentation you might want to check with Global External Application load balancer wherein the capabilities and features are listed. 

Hope this helps you.