Why does GKE Console list an internal LB as an external LB?

3/1/2021

When I create a LoadBalancer like this:

apiVersion: v1
kind: Service
metadata:
  name: webhook-event-source-service
  namespace: argo-events
  annotations:
    networking.gke.io/load-balancer-type: "Internal"
spec:
  type: LoadBalancer
  loadBalancerIP: 10.196.xxx.xxx
  selector:
    controller: eventsource-controller
  ports:
  - port: 1212
    targetPort: 1212
    protocol: TCP

Why does the GKE Console list it as an "External Load Balancer"?

enter image description here

-- Raffael
google-kubernetes-engine
kubernetes

1 Answer

3/2/2021

In fact, this problem has already been reported some time ago on Google's public issue tracker and it's currently under investigation:

Problem you have encountered:

I created a Deployment and a LoadBalancer Service as described in the official docs

Notice the LoadBalancer service is annotated with networking.gke.io/load-balancer-type: "Internal"

What you expected to happen:

I expected to see this service listed as Internal Load Balancer in the Services & Ingress view of the GCP console.

Instead it is listed as an External Load Balancer. (See attachment)

Going to the specific load balancer in the Load Balancing view shows it as Internal.

Steps to reproduce:

Just follow the docs and head to the Services & Ingress view in the console.

And the answer from GCP support, confirming that they were also able to reproduce the issue and are analyzing it at the moment:

Hello,

Thank you for reaching out.

I've managed to reproduce the same scenario that you've included in your message.

I forwarded this information to the Engineering team.

Please follow this issue in case of any further updates.

Best regards

So if you are interested in progressing on this issue, feel free to follow this thread for further updates.

-- mario
Source: StackOverflow