Ingress-controller redirect to serviceName according to ip addresses

4/5/2019

I have an ingress controller and two nginx in one Kubernetes namespace. One service has the name nginx-1 and the second name nginx-2.

I need to create a situation where nginx-1 will be default backend, and nginx-2 will be a target for a few IP addresses.

I have tried to do this using a ConfigMap but without results.

Maybe someone had a problem like this?

-- ksmar
configmap
kubernetes
nginx-ingress

1 Answer

4/8/2019

Never saw on Kubernetes docs something like this, but I would like to purpose another approach. You can configure your ingress to use named based virtual hosting, so that few IP addresses would connect using a different domain.

Here and example:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: name-virtual-host-ingress
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - backend:
          serviceName: service1
          servicePort: 80
  - host: bar.foo.com
    http:
      paths:
      - backend:
          serviceName: service2
          servicePort: 80

Reference: https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting

-- Luis Brito
Source: StackOverflow