<p>I am running a cluster on GKE where the the ingress is configured to use NGINX like so:</p>
<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
      kubernetes.io/ingress.class: nginx
      nginx.ingress.kubernetes.io/ssl-redirect: &quot;false&quot;
      nginx.ingress.kubernetes.io/use-regex: &quot;true&quot;
....
</code></pre>
<p>And I installed the NGINX load balancer on the CLI using Helm.  The load balancer console only shows NGINX (and not the Google one), which is good, and my application definitely routes according to my ingress manifest.  However, my Ingress shown in the console has the property: <code>loadBalancerIP: xx.xxx.xxx.x</code> and I do not recognize it whatsoever.  It's definitely not the external IP used by the NGINX load balancer but it <em>is</em> similar (to where it could be a public IP, not internal).  It responds to pings as well.  This property was added to the ingress yaml by Google Cloud when it went through the pipeline.  Is this anything to be concerned about?</p>

apbassett
<p>I was able to reproduce this behavior.</p>
<p><strong>1</strong> If you will deploy <code>Nginx Ingress</code> on GKE as per <a href="https://cloud.google.com/load-balancing/docs/https" rel="nofollow noreferrer">Nginx Docs</a> it is working normally. <code>Service</code> and <code>Ingress</code> have the same IP.</p>
<pre><code>kubectl create clusterrolebinding cluster-admin-binding \
  --clusterrole cluster-admin \
  --user $(gcloud config get-value account)
  
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud/deploy.yaml
namespace/ingress-nginx created
serviceaccount/ingress-nginx created
configmap/ingress-nginx-controller created
clusterrole.rbac.authorization.k8s.io/ingress-nginx created
...
</code></pre>
<p><strong>2</strong> If you will Deploy Nginx Ingress Helm chart without any changes <code>$ helm install ingress ingress-nginx/ingress-nginx</code> it will work as you described
<code>Nginx ingress controller LoadBalancer service</code> will have one <code>ExternalIP</code> and <code>Ingress</code> will have another <code>ExternalIP</code>.</p>
<pre><code>$ kubectl get svc,ing
NAME                                            TYPE           CLUSTER-IP   EXTERNAL-IP    PORT(S)                      AGE
service/hello-v2-svc                            NodePort       10.8.2.119   &lt;none&gt;         8080:32492/TCP               58s
service/ingress-nginx-ingress-controller        LoadBalancer   10.8.5.90    34.72.141.41   80:32280/TCP,443:31670/TCP   108s
service/ingress-nginx-ingress-default-backend   ClusterIP      10.8.5.66    &lt;none&gt;         80/TCP                       108s
service/kubernetes                              ClusterIP      10.8.0.1     &lt;none&gt;         443/TCP                      169m
NAME                            HOSTS   ADDRESS         PORTS   AGE
ingress.extensions/my-ingress   *       34.66.191.241   80      58s
</code></pre>
<p>Regarding part if you should worry it depends. This will not charge you as GKE found only 1 <code>LoadBalancer</code> which is <code>Service LoadBalancer</code>. You can check that by:</p>
<pre><code>$ gcloud compute url-maps list
Listed 0 items.
user@cloudshell:~ (project)$ gcloud compute forwarding-rules list
NAME                              REGION       IP_ADDRESS    IP_PROTOCOL  TARGET
a655d3a06b55511ea89df42010a800fe  us-central1  34.72.141.41  TCP          us-central1/targetPools/a655d3a06b55511ea89df42010a800fe
</code></pre>
<p><strong>3</strong> If you want your <code>Ingress</code> and <code>Nginx LoadBalancer service</code> have the same <code>ExternalIP</code>, you must set parameter <code>controller.publishService.enabled</code> to true in helm command. This parameter can be found in <a href="https://github.com/kubernetes/ingress-nginx" rel="nofollow noreferrer">Nginx Ingress</a> docs.</p>
<blockquote>
<p>controller.publishService.enabled  if true, the controller will set the endpoint records on the ingress objects to reflect those on the service    false</p>
</blockquote>
<pre><code>$ helm install ingress ingress-nginx/ingress-nginx --set controller.publishService.enabled=true
</code></pre>
<p>After that you can deploy some YAMLs like:</p>
<pre><code>apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-v2
spec:
  selector:
    matchLabels:
      app: hello-v2
  replicas: 1
  template:
    metadata:
      labels:
        app: hello-v2
    spec:
      containers:
      - name: hellov2
        image: &quot;gcr.io/google-samples/hello-app:2.0&quot;
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: hello-v2-svc
  labels: 
    app: hello-v2
spec:
  type: NodePort 
  selector:
    app: hello-v2
  ports:
  - port: 8080
    targetPort: 8080
    protocol: TCP
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata: 
  name: my-ingress
  annotations:
    kubernetes.io/ingress.class: &quot;nginx&quot;
spec:
  rules:
  - http:
      paths:
        - path: /hello-v2
          backend:
            serviceName: hello-v2-svc
            servicePort: 8080
            
$ kubectl apply -f hello.yaml
deployment.apps/hello-v2 created
service/hello-v2-svc created
ingress.extensions/my-ingress created

$ kubectl get svc,ing
NAME                                            TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                      AGE
service/hello-v2-svc                            NodePort       10.8.3.51     &lt;none&gt;          8080:30572/TCP               19m
service/ingress-nginx-ingress-controller        LoadBalancer   10.8.12.137   34.69.123.145   80:32720/TCP,443:31245/TCP   20m
service/ingress-nginx-ingress-default-backend   ClusterIP      10.8.1.65     &lt;none&gt;          80/TCP                       20m
service/kubernetes                              ClusterIP      10.8.0.1      &lt;none&gt;          443/TCP                      163m

NAME                            HOSTS   ADDRESS         PORTS   AGE
ingress.extensions/my-ingress   *       34.69.123.145   80      19m

$ curl 34.69.123.145/hello-v2
Hello, world!
Version: 2.0.0
Hostname: hello-v2-7cf9b75bbf-2cdj5
</code></pre>
<h3>EDIT</h3>
<p>Lately Helm chart <a href="https://github.com/helm/charts/tree/master/stable/nginx-ingress" rel="nofollow noreferrer">stable/nginx-ingress</a> has been deprecated. Please use <code>nginx-ingress/nginx-ingress</code>. Commands above, already changed.</p>
