<p>How can I configure multiple external IPs within a single cluster using ingress-nginx?</p>

<p>I can see that ingress-nginx creates a load balancer service with external IP. I assume I would need to create another load balancer service? How I would indicate in ingress which load balancer to use?</p>

<p>PS I am using GKE.</p>

<p>Create multiple ingress controller. In new controller define a class name, (Here <strong>nginx-internal</strong>) </p>

<pre><code>spec:
 template:
    spec:
      containers:
        - name: nginx-ingress-internal-controller
          args:
            - /nginx-ingress-controller
            - '--election-id=ingress-controller-leader-internal'
            - '--ingress-class=nginx-internal'
            - '--configmap=ingress/nginx-ingress-internal-controller'
</code></pre>

<p>Then Create a <strong>Ingress</strong> with
<code>kubernetes.io/ingress.class: "nginx-internal"</code> annotation.
For example, creating a hello-world ingress with following yaml</p>

<pre><code>
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hello-world
  annotations:
    kubernetes.io/ingress.class: "nginx-internal"
spec:
  tls:
  - secretName: tls-secret
  rules:
  - http:
      paths:
      - backend:
          serviceName: hello-world-svc
          servicePort: 8000
</code></pre>

<p>Click <a href="https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/" rel="noreferrer">here</a> for official documentation</p>
