How to visualize my web application with browser using Kubernetes Nginx Ingress?

4/12/2020

I am following this web site to develop an API with Nginx Ingress. When I use curl command it works !

curl -v -k -H "Host: myServiceA.foo.org" http:<IP_ADDRESS_INGRESS_NGINX>:80

Now I would like to use a browser like Chrome or Firefox but I don't find any way to do it knowing that http:<IP_ADDRESS_INGRESS_NGINX>:80 doesn't work without header.

Do you know how to do please ?

Regards

-- Yassir S
kubernetes-ingress
nginx-ingress

1 Answer

4/14/2020

It's not working because you've configured the host field in ingress yaml.

Using the same yaml from Nginx docs you've posted:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-myServiceA
  annotations:
    # use the shared ingress-nginx
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: myServiceA.foo.org <== HERE
    http:
      paths:
      - path: /
        backend:
          serviceName: myServiceA
          servicePort: 80

The ingress will only accept the connection and forwarding the request to your service if the request contains the host myServiceA.foo.org. You could test it editing the /etc/hosts of your machine e pointing to the nginx ingress ip:

File /etc/hosts

<INGRESS_IP>  myServiceA.foo.org

Or another option is remove the field host in this way the ingress will accept requests coming from the Nginx ingress ip, like this yaml:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - http:
      paths:
        - path: /
          backend:
            serviceName: echo-svc
            servicePort: 80
-- KoopaKiller
Source: StackOverflow