Il controller di ingresso Nginx restituisce 404 Kubernetes

Aug 16 2020

Sto cercando di creare un controller di ingresso che punti a un servizio che ho esposto tramite NodePort.

Ecco il file yaml per il controller di ingresso (preso da 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 collegarmi direttamente alla porta del nodo e viene visualizzato il frontend.

Tieni presente che lo sto facendo perché l'app frontend non è in grado di connettersi ad altre distribuzioni che ho creato e ho letto che un controller di ingresso sarebbe in grado di risolvere il problema. Dovrò ancora aggiungere un proxy inverso Nginx? In caso affermativo come potrei farlo? Ho provato ad aggiungerlo al file di configurazione nginx ma senza successo.

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

Risposte

2 Faheem Aug 16 2020 at 09:10

È necessario utilizzare un nome host appropriato per raggiungere il percorso definito Ingressnell'oggetto. Aggiorna il tuo /etc/hostsfile o usa il curl -H "hello-world.info" localhostcomando type. In alternativa, puoi eliminare la hostmappatura e reindirizzare tutto il traffico a un servizio predefinito.

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