Kontroler Nginx Ingress zwraca 404 Kubernetes

Aug 16 2020

Próbuję utworzyć kontroler danych wejściowych wskazujący na usługę, którą ujawniłem za pośrednictwem NodePort.

Oto plik yaml dla kontrolera danych wejściowych (pobrany z 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

Mogę połączyć się bezpośrednio z portem węzła i wyświetla się frontend.

Zwróć uwagę, że robię to, ponieważ aplikacja frontendowa nie może połączyć się z innymi wdrożeniami, które utworzyłem i przeczytałem, że kontroler wejściowy byłby w stanie rozwiązać problem. Czy nadal będę musiał dodać odwrotny serwer proxy Nginx? Jeśli tak, jak miałbym to zrobić? Próbowałem dodać to do pliku konfiguracyjnego nginx, ale bezskutecznie.

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

Odpowiedzi

2 Faheem Aug 16 2020 at 09:10

Aby dotrzeć do trasy zdefiniowanej w Ingressobiekcie, musisz użyć właściwej nazwy hosta . Zaktualizuj /etc/hostsplik lub użyj curl -H "hello-world.info" localhostpolecenia type. Alternatywnie możesz usunąć hostmapowanie i przekierować cały ruch do jednej usługi domyślnej.

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