Multiple external IP (load balancers) for ingress-nginx

4/17/2020

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

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?

PS I am using GKE.

-- Alisher
kubernetes
nginx-ingress

1 Answer

4/18/2020

Create multiple ingress controller. In new controller define a class name, (Here nginx-internal)

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'

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

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

Click here for official documentation

-- hoque
Source: StackOverflow