kubernetes: [GKE] Service of type LoadBalancer stays stuck if loadBalancerIP is static
Is this a request for help? (If yes, you should use our troubleshooting guide and community support channels, see http://kubernetes.io/docs/troubleshooting/.): No
What keywords did you search in Kubernetes issues before filing this one? (If you have found any duplicates, you should instead reply there.): "external ip not assigned on GKE " and variants
Is this a BUG REPORT or FEATURE REQUEST? (choose one): BUG REPORT
Kubernetes version (use kubectl version):
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.0", GitCommit:"fff5156092b56e6bd60fff75aad4dc9de6b6ef37", GitTreeState:"clean", BuildDate:"2017-03-28T16:36:33Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.0", GitCommit:"fff5156092b56e6bd60fff75aad4dc9de6b6ef37", GitTreeState:"clean", BuildDate:"2017-03-28T16:24:30Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
Environment:
- Cloud provider or hardware configuration: Google Compute Platform
What happened:
Several of the details on this thread: http://stackoverflow.com/questions/43416772/service-wont-come-up-when-using-static-ip-on-gke.
TL;DR: Trying to create a service and expose it via static IP on GCP. If I assign a Service LoadBalancer with a loadBalancerIP that is the same as the static IP assigned on GCP, the service stays stuck in external IP allocation pending state.
$ kubectl get service my-app-service
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-app-service 10.x.x.x <pending> 80:31432/TCP 12m
What you expected to happen: Service will allocate itself the static IP I assigned
How to reproduce it (as minimally and precisely as possible):
- Allocate a static IP on GCP
- Use that static IP on a
Serviceof typeLoadBalancer
Anything else we need to know: I think there is generally missing guidance on how to combine ingress with service, or maybe my perception is clouded by the errors I am seeing.
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 4
- Comments: 17 (10 by maintainers)
@riturajtiwari I’m not sure what you mean. What I commented on is, Google Cloud Load Balancers simply may take a few minutes as the forwarding rules are propagated across the globe. This is not specific to Kubernetes. If you were to create a HTTP/s Load Balancer manually yourself, you would see similar delays.
@riturajtiwari I don’t think GCLB API provides any information on whether routing/forwarding rules are propagated to all its edge locations across the world. This probably makes Kubernetes not able to tell the readiness of the Ingress.
Keep in mind that GCLB is not regional and any configuration applied to it has to propagate all Google locations worldwide. More info at https://cloud.google.com/load-balancing/ That said, it’d be nice if there was a readiness indicator on the API, I agree.