El controlador de entrada de Nginx devuelve 404 Kubernetes

Aug 16 2020

Estoy intentando crear un controlador de entrada que apunte a un servicio que expuse a través de NodePort.

Aquí está el archivo yaml para el controlador de entrada (tomado 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

Puedo conectarme directamente al puerto del nodo y se muestra la interfaz.

Tenga en cuenta que estoy haciendo esto porque la aplicación de interfaz no puede conectarse a otras implementaciones que he creado y leí que un controlador de entrada podría resolver el problema. ¿Aún tendré que agregar un proxy inverso Nginx? Si es así, ¿cómo haría eso? Intenté agregar esto al archivo de configuración nginx pero sin éxito.

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

Respuestas

2 Faheem Aug 16 2020 at 09:10

Debe utilizar un nombre de host adecuado para llegar a la ruta definida en el Ingressobjeto. Actualice su /etc/hostsarchivo o use el curl -H "hello-world.info" localhostcomando de tipo. Alternativamente, puede eliminar la hostasignación y redirigir todo el tráfico a un servicio predeterminado.

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