Search code examples
gke-networking

Cannot access GKE with static external IP


I am trying to assign static external IP to the GKE LB.

apiVersion: v1
kind: Service
metadata:
  name: onesg
  labels:
    app: onesg
spec:
  selector:
    app: onesg
  ports:
  - port: 80
    targetPort: 5000
  type: LoadBalancer
  loadBalancerIP: "my regional IP"

But after deployment, I cannot access my app from the regional IP. Any idea?

NAME         TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE
kubernetes   ClusterIP      10.104.0.1      <none>          443/TCP        23h
onesg        LoadBalancer   10.104.15.191   my regional IP  80:31293/TCP  7m18s

If I use ephemeral IP assigned by GKE LB, I can access my app.


Solution

  • You have to check if your Service is actually pointing to the proper pods.

    run the following

    kubectl describe service onesg
    

    in the output there should be a field called endpoints.

    run this

    kubectl get pods -o wide

    and make sure the list of IP's in the endpoint field from the first command matches the IP of the pods from the second one

    Next to troubleshoot you can try to make sure you app works, you can do that by using the kubectl port-forward command

    https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/