Nginx Ingress Controller gibt 404 Kubernetes zurück

Aug 16 2020

Ich versuche, einen Ingress-Controller zu erstellen, der auf einen Dienst verweist, den ich über NodePort verfügbar gemacht habe.

Hier ist die Yaml-Datei für den Ingress-Controller (entnommen aus 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

Ich kann mich direkt mit dem Knotenport verbinden und das Frontend wird angezeigt.

Bitte beachten Sie, dass ich dies tue, weil die Frontend-App keine Verbindung zu anderen von mir erstellten Bereitstellungen herstellen kann und ich gelesen habe, dass ein Ingress-Controller das Problem lösen kann. Muss ich noch einen Nginx-Reverse-Proxy hinzufügen? Wenn ja, wie würde ich das machen? Ich habe versucht, dies zur Nginx-Konfigurationsdatei hinzuzufügen, aber ohne Erfolg.

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

Antworten

2 Faheem Aug 16 2020 at 09:10

Sie müssen einen richtigen Hostnamen verwenden, um die im IngressObjekt definierte Route zu erreichen . Aktualisieren Sie entweder Ihre /etc/hostsDatei oder verwenden Sie den curl -H "hello-world.info" localhostBefehl type. Alternativ können Sie die hostZuordnung löschen und den gesamten Datenverkehr auf einen Standarddienst umleiten.

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