Nginx Ingress Controller retorna 404 Kubernetes

Aug 16 2020

Estou tentando criar um controlador de ingresso que aponta para um serviço que expus via NodePort.

Aqui está o arquivo yaml para o controlador de entrada (retirado de https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/):

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: hello-world.info
    http:
      paths:
      - path: /
        backend:
          serviceName: appName
          servicePort: 80

Posso me conectar diretamente à porta do nó e o frontend é exibido.

Observe que estou fazendo isso porque o aplicativo de front-end não consegue se conectar a outras implantações que criei e li que um controlador de entrada seria capaz de resolver o problema. Ainda terei que adicionar um proxy reverso Nginx? Se sim, como eu faria isso? Eu tentei adicionar isso ao arquivo de configuração nginx, mas sem sucesso.

location /middleware/ {
      proxy_pass http://middleware/;
   }

Respostas

2 Faheem Aug 16 2020 at 09:10

Você deve usar um nome de host adequado para alcançar a rota definida no Ingressobjeto. Atualize seu /etc/hostsarquivo ou use o curl -H "hello-world.info" localhostcomando type. Como alternativa, você pode excluir o hostmapeamento e redirecionar todo o tráfego para um serviço padrão.

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: appName
          servicePort: 80