I've tried to run this simple tutorial inside Google Container Engine which implements a simple guestbook app using php and redis. The tutorial sounds so trivial. It contains two redis services of type Cluster IP -default kubernetes service type- and they are running so perfectly.
On the other hand, the third service is a front end service that is exposed publicly -outside the container cluster- with type --LoadBalancer.
i could run the service, but it should trigger an external LoadBalancer that will route external traffic to the pods of the container cluster, resulting in an External IP address. In the docs, they mention that it might take up to two minutes to get the service assigned with the LB external IP address. But i've waited for more than 20 minutes without luck.
NAME CLUSTER-IP EXTERNAL-IP PORTS AGE
frontend 10.35.244.187 <pending> 80:31441/TCP 27m
kubernetes 10.35.240.1 <none> 443/TCP 1h
redis-master 10.35.248.31 <none> 6379/TCP 42m
redis-slave 10.35.250.172 <none> 6379/TCP 39m
What would cause such problem !! FYI: I've tried much simpler containerized app (a hello world Node.js app), the same issue appears to be happening there, Unfortunately.
As @Janos Lenart suggested, it was a full quota issue. I was able to solve this by increasing my Forwarding rules quota in the GCP console.
Go to the GCP Console --> IAM and Admin (on the menu bar) --> Quotas --> Edit Quotas (in blue at the top of the page) --> Forwarding Rules
Although you need to submit a request I got an email telling me it'd been increased almost instantly. After that new load balancers got their external IPs assigned correctly.